AzLearn

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

لو حاولت تمرير "complete"، سيرفضه TypeScript لأنه ليس ضمن union.

لا تعمم مبكراً

string سهل لكنه واسع. كلما كانت القيم محددة، استخدم literal union. هذا يجعل الحالات الجديدة قراراً صريحاً لا خطأ عابراً.

تحدي — Challenge