الـ Heterogeneous Enums
جزء من قسم مقدمة إلى TypeScript في رحلة JavaScript على Coddy. الدرس 55 من 73.
يدعم TypeScript أيضًا التعدادات غير المتجانسة - وهي تعدادات تحتوي على مزيج من الأعضاء النصية والرقمية ضمن التصريح نفسه.
إليك كيفية إنشاء تعداد غير متجانس:
enum MixedEnum {
No = 0,
Yes = "YES",
Maybe = 1
}في هذا المثال، يُعدّ No وMaybe عضوين رقميين، بينما يُعدّ Yes عضوًا نصيًا. تتيح TypeScript هذه المرونة، مع أنه من المهم ملاحظة أن التعدادات غير المتجانسة نادرًا ما تُستخدم عمليًا.
التحدي
سهلCreate تعدادًا غير متجانسًا باسم ResponseCode يمزج بين القيم النصية والرقمية:
Successمهيّأ إلى200Errorمهيّأ إلى"ERROR"NotFoundمهيّأ إلى404Timeoutمهيّأ إلى"TIMEOUT"
Create دالة باسم handleResponse تأخذ معاملًا واحدًا:
codeمن النوعResponseCode
ينبغي أن تقوم الدالة بما يلي:
- التحقق من رمز الاستجابة وطباعة رسائل مختلفة بناءً على القيمة
- إذا كان الرمز هو
ResponseCode.Success، فاطبع"Request successful" - إذا كان الرمز هو
ResponseCode.Error، فاطبع"General error occurred" - إذا كان الرمز هو
ResponseCode.NotFound، فاطبع"Resource not found" - إذا كان الرمز هو
ResponseCode.Timeout، فاطبع"Request timed out" - أن يكون نوع الإرجاع هو
void
Create أربعة متغيرات لعرض قيم التعداد:
successCodeمن النوعResponseCodeوإسنادResponseCode.SuccessإليهerrorCodeمن النوعResponseCodeوإسنادResponseCode.ErrorإليهnotFoundCodeمن النوعResponseCodeوإسنادResponseCode.NotFoundإليهtimeoutCodeمن النوعResponseCodeوإسنادResponseCode.Timeoutإليه
اطبع المخرجات التالية:
- Print قيمة
successCode - Print قيمة
errorCode - Print قيمة
notFoundCode - Print قيمة
timeoutCode - استدعِ
handleResponseباستخدامResponseCode.Success - استدعِ
handleResponseباستخدامerrorCode - استدعِ
handleResponseباستخدام القيمة الرقمية404
جرّب بنفسك
// TODO: اكتب الكود الخاص بك هنا
// أنشئ الـ enum ResponseCode
// أنشئ الدالة handleResponse
// أنشئ المتغيرات التوضيحية
// اطبع المخرجات المطلوبةيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس مقدمة إلى 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 عبر الإنترنت