Union و Literal Types
Union and Literal Types
مفهوم
~18 دقيقة
Union و Literal Types
أحياناً لا تكون القيمة أي string، بل واحدة من قيم محددة. مثال: حالة الطلب قد تكون "draft" أو "paid" أو "cancelled". بدلاً من string العام، نكتب union: type OrderStatus = "draft" | "paid" | "cancelled". هذا يمنع القيم العشوائية مثل "done" إذا لم تكن ضمن المجال.
الـ union يجعل النموذج أقرب للحقيقة. عندما يعرف TypeScript أن status محدود، يستطيع مساعدتك في switch ويمنع أخطاء إملائية. هذه من أقوى عادات TypeScript: قلل الاحتمالات إلى ما يسمح به المجال فعلاً.
مثال عملي
index.ts
Output:
لو حاولت تمرير "complete"، سيرفضه TypeScript لأنه ليس ضمن union.
لا تعمم مبكراً
string سهل لكنه واسع. كلما كانت القيم محددة، استخدم literal union. هذا يجعل الحالات الجديدة قراراً صريحاً لا خطأ عابراً.
تحدي — Challenge
عرّف type Status بقيمتين واستخدم active