Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الـ Heterogeneous Enums

جزء من قسم Introduction To TypeScript في رحلة JavaScript على Coddy — الدرس 55 من 73.

يدعم TypeScript أيضاً التعدادات غير المتجانسة (heterogeneous enums) - وهي التعدادات التي تحتوي على مزيج من الأعضاء النصية والرقمية داخل نفس التصريح.

إليك كيفية إنشاء تعداد (enum) غير متجانس:

enum MixedEnum {
  No = 0,
  Yes = "YES",
  Maybe = 1
}

في هذا المثال، No و Maybe هما أعضاء رقميون، بينما Yes هو عضو نصي. يسمح TypeScript بهذه المرونة، على الرغم من أنه من المهم ملاحظة أن التعدادات غير المتجانسة (heterogeneous enums) نادرًا ما تُستخدم في الممارسة العملية.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

challenge icon

التحدي

سهل

أنشئ enum غير متجانس (heterogeneous enum) باسم ResponseCode يمزج بين القيم النصية والعددية:

  • Success تمت تهيئته بـ 200
  • Error تمت تهيئته بـ "ERROR"
  • NotFound تمت تهيئته بـ 404
  • Timeout تمت تهيئته بـ "TIMEOUT"

أنشئ دالة باسم handleResponse تأخذ معاملًا واحدًا:

  • code من نوع ResponseCode

يجب أن تقوم الدالة بما يلي:

  • التحقق من رمز الاستجابة وطباعة رسائل مختلفة بناءً على القيمة
  • إذا كان الرمز هو ResponseCode.Success، اطبع "Request successful"
  • إذا كان الرمز هو ResponseCode.Error، اطبع "General error occurred"
  • إذا كان الرمز هو ResponseCode.NotFound، اطبع "Resource not found"
  • إذا كان الرمز هو ResponseCode.Timeout، اطبع "Request timed out"
  • أن يكون نوع الإرجاع هو void

أنشئ أربعة متغيرات لتوضيح قيم الـ enum:

  • successCode من نوع ResponseCode وقم بتعيين ResponseCode.Success له
  • errorCode من نوع ResponseCode وقم بتعيين ResponseCode.Error له
  • notFoundCode من نوع ResponseCode وقم بتعيين ResponseCode.NotFound له
  • timeoutCode من نوع ResponseCode وقم بتعيين ResponseCode.Timeout له

اطبع المخرجات التالية:

  • اطبع قيمة successCode
  • اطبع قيمة errorCode
  • اطبع قيمة notFoundCode
  • اطبع قيمة timeoutCode
  • استدعِ handleResponse مع ResponseCode.Success
  • استدعِ handleResponse مع errorCode
  • استدعِ handleResponse مع القيمة العددية 404

ورقة مرجعية

يدعم TypeScript التعدادات غير المتجانسة (heterogeneous enums) التي تحتوي على مزيج من الأعضاء النصية والعددية داخل نفس التصريح:

enum MixedEnum {
  No = 0,
  Yes = "YES",
  Maybe = 1
}

في التعدادات غير المتجانسة، يمكنك مزج القيم العددية والنصية. بينما يسمح TypeScript بهذه المرونة، فإن التعدادات غير المتجانسة نادراً ما تُستخدم في الممارسة العملية.

جرّب بنفسك

// TODO: اكتب كودك هنا

// ResponseCode أنشئ التعداد


// handleResponse أنشئ الدالة


// أنشئ المتغيرات التوضيحية


// اطبع المخرجات المطلوبة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Introduction To TypeScript