ما هو الـ Numeric Enum؟
جزء من قسم Introduction To TypeScript في رحلة JavaScript على Coddy. الدرس 51 من 73.
توفر تعدادات TypeScript (TypeScript enums) طريقة لإعطاء أسماء ذات معنى لمجموعة من القيم الرقمية المرتبطة. فبدلاً من استخدام الأرقام السحرية (magic numbers) في جميع أنحاء الكود الخاص بك، تتيح لك الـ enums إنشاء مجموعة من الثوابت المسماة التي تجعل الكود أكثر قابلية للقراءة والصيانة.
يتم التصريح عن التعداد الرقمي (numeric enum) باستخدام الكلمة المفتاحية enum. بشكل افتراضي، يقوم TypeScript تلقائياً بتعيين قيم رقمية تبدأ من 0 وتزداد بمقدار 1 لكل عضو:
enum Status {
Pending, // 0
Processing, // 1
Complete // 2
}يؤدي هذا إلى إنشاء ثلاثة ثوابت: Status.Pending يساوي 0، و Status.Processing يساوي 1، و Status.Complete يساوي 2. يمكنك أيضاً تعيين القيمة الابتدائية بشكل صريح، وسوف تستمر العناصر اللاحقة في التزايد من تلك النقطة.
التحدي
سهلأنشئ enum رقمي باسم UserRole بثلاثة أعضاء: Admin، و Editor، و Viewer.
أنشئ ثلاثة متغيرات لتوضيح قيم الـ enum:
adminRoleمن النوعUserRoleوقم بتعيينUserRole.AdminلهeditorRoleمن النوعUserRoleوقم بتعيينUserRole.EditorلهviewerRoleمن النوعUserRoleوقم بتعيينUserRole.Viewerله
اطبع المخرجات التالية في أسطر منفصلة:
- اطبع قيمة
adminRole - اطبع قيمة
editorRole - اطبع قيمة
viewerRole - اطبع القيمة الرقمية لـ
UserRole.Admin - اطبع القيمة الرقمية لـ
UserRole.Editor - اطبع القيمة الرقمية لـ
UserRole.Viewer
جرّب بنفسك
// TODO: اكتب الكود الخاص بك هنا
// قم بإنشاء enum باسم UserRole والمتغيرات كما هو موضح في التحدي
// اطبع المخرجات المطلوبةيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Introduction To TypeScript
1البداية مع TS
ما هي TypeScript؟لماذا نستخدم TypeScript؟أول كود TypeScript لكعملية الـ Compilation والأخطاءملخص: مقدمة في TS4التعامل مع الدوال
تحديد أنواع المعاملات وقيم الإرجاعتحديد أنواع Arrow Functionsنوع الإرجاع 'void'المعاملات الاختيارية باستخدام '?'القيم الافتراضية للمعاملاتتحديد أنواع Rest Parametersتعريف أنواع الدوالملخص: بناء دوال محددة الأنواع2الأنواع الأساسية
الأنواع الأساسية: str, num, booleanالنوع 'any': مخرج الهروبالنوع 'unknown'التعامل مع 'null' و 'undef'استنتاج الأنواع في التطبيق العمليتوضيحات الأنواع الصريحةمراجعة: تدريب على الأنواع الأساسية5الأنواع: الأسماء المستعارة، الاتحادات والتقاطعات
الأسماء المستعارة للأنواع الأساسية (Primitives)أنواع الاتحاد ('|')التعامل مع أنواع الاتحادالأنواع الحرفية (Literal Types)أنواع التقاطع ('&')دمج الأسماء المستعارة للأنواعملخص: تركيبات الأنواع المتقدمة3هياكل البيانات: المصفوفات و Tuple
المصفوفات محددة النوع (Typed Arrays)معدل 'readonly' للمصفوفاتما هو الـ Tuple؟تعريف والوصول إلى الـ Tuplesتفكيك الـ Tuples (Destructuring)الـ Tuples للقراءة فقط (Readonly)المصفوفات محددة النوع متعددة الأبعاداستخدام Spread Operator مع المصفوفاتملخص: المصفوفات و Tuples6تحديد أنواع الكائنات والواجهات
توصيف أنواع الكائنات المضمنة (Inline)الأسماء المستعارة للأنواع (Type Aliases) للكائناتمقدمة عن الواجهات (Interfaces)الواجهات (Interfaces) مقابل الأسماء المستعارة للأنواع (Type Aliases)الخصائص الاختيارية وخصائص القراءة فقط (Readonly)توسيع الواجهات والأنواعإضافة الدوال (Methods) إلى الواجهاتملخص: تحديد هياكل الكائناتتدرّب بنفسك: مترجم JavaScript عبر الإنترنت