TypeScript • المستوى الثاني • الدرس 1
العودة لفهرس المستوىالتعدادات المحددة (Enums)
أهداف الدرس العلمية
- فهم دور الـ
Enumفي تجميع الثوابت المترابطة لمنع الكتابة الخاطئة للمجموعات المحددة. - الفرق بين التعدادات الرقمية (Numeric Enums) والتعدادات النصية (String Enums).
- تطبيق الـ Enums في دالة معالجة حالات التطبيق لإعطاء إشارات واضحة وقت التطوير.
- تحسين مقروءة الكود وسهولة صيانته عند التوسع في الخيارات المتاحة.
1. ما هي الـ Enums؟
تتيح لك Enums (التعدادات) تعريف مجموعة من الثوابت المترابطة بأسماء رمزية معبرة. تمنع الـ Enums الاعتماد على النصوص المباشرة ("Magic Strings") التي قد تتسبب بأخطاء إملائية صعبة الاكتشاف.
typescript
// 1️⃣ Numeric Enum (تأخذ أرقاماً متسلسلة تلقائياً 0, 1, 2...)
enum Role {
User, // 0
Admin, // 1
Guest // 2
}
// 2️⃣ String Enum (تكون قيمها صريحة ومقروءة أثناء التنقيح)
enum UserRole {
Admin = "ADMIN",
Member = "MEMBER"
}2. متى نستخدم الـ Enums؟
🚦 حالات ثابتة ومحددة
مثل حالات طلبات الشراء (Pending, Approved, Shipped)، أدوار المستخدمين، أو اتجاهات الحركة (Up, Down, Left, Right).
🔍 الإكمال التلقائي (Autocompletion)
يسمح لك المحرر باستعراض كل الخيارات المتاحة بمجرد كتابة اسم الـ Enum متبوعاً بنقطة . دون الحاجة لتذكر القيمة.
التطبيق العملي المباشر
تحدي الدرس الأول: إضافة حالة الشحن واختبار التعدادات
قم بالتعديل على الكود في المحرر أدناه لتطبيق المتطلبات التالية:
- أضف حالة جديدة إلى
OrderStatusباسمShippedوقيمتها النصية"SHIPPED". - قم بتوسيع دالة
checkStatusللتحقق من حالةOrderStatus.Shippedوطباعة رسالة تعبر عن شحن الطلب. - قم باستدعاء دالة
checkStatusواختبارها بحالةOrderStatus.RejectedوحالةOrderStatus.Shipped. - اضغط على "تشغيل الكود" لمعاينة النتائج واجتياز القواعد.
⏳ جارٍ تحميل المحرر التفاعلي...