Avatar ·

TypeScript: كيفية إنشاء واجهة تتطلب بالضرورة واحدة من خاصيتين؟

مرحباً بالجميع! أكتب تطبيقاً بلغة TypeScript لمعالجة الطلبات. لدي واجهة للمستخدم يمكن أن يكون إما مسجلاً (وعندها لديه `userId`) أو ضيفاً (وعندها لديه `guestToken`). لكن الأهم هو أن المستخدم يجب أن يكون لديه بالضبط واحد من هذين الحقلين، وليس كلاهما معاً ولا أياً منهما.\n\nإليك كيف حاولت القيام بذلك:\n\n```typescript\ninterface User {\n name: string;\n email: string;\n userId?: number;\n guestToken?: string;\n}\n```\n\nلكن المشكلة هي أن TypeScript يسمح بإنشاء كائن حيث يكون كلا الحقلين مفقودين، أو كلاهما موجودان في نفس الوقت. على سبيل المثال:\n\n```typescript\nconst user1: User = { name: "آنا", email: "a@mail.ru" }; // لا يوجد userId ولا guestToken — لا يتم إصدار خطأ\nconst user2: User = { name: "إيفان", email:

لا توجد إجابات بعد.

تسجيل الدخول لترك إجابة

المدونات