0Pricing
TypeScript Academy · درس

التعدادات: الثوابت الرقمية والنصية

استخدموا التعدادات لاستبدال السلاسل النصية والأرقام السحرية

التعدادات: الثوابت الرقمية والنصية درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

مرحبًا

تتيح لك Enums تعريف مجموعة من القيم الثابتة ذات الأسماء. وهي تستبدل الأرقام والسلاسل النصية السحرية بأسماء واضحة يفرض TypeScript استخدامها.

التعدادات الرقمية

تُسنَد إلى أعضاء enum، افتراضيًا، أرقام متزايدة تلقائيًا تبدأ من 0.
enum Direction {
  Up,    // 0
  Down,  // 1
  Left,  // 2
  Right, // 3
}
console.log(Direction.Up); // 0

قيم التعداد الرقمي المخصصة

يمكنك تعيين قيمة البداية أو تجاوز قيمة أعضاء بعينهم. وتزداد قيم الأعضاء اللاحقين تلقائيًا انطلاقًا من آخر قيمة مُعيّنة.
enum Status {
  Active = 1,
  Inactive, // 2
  Banned = 100,
}

التعدادات النصية

تتطلب التعدادات النصية قيمة صريحة لكل عضو. وهي أوضح في السجلات والبيانات المتسلسلة من القيم الرقمية.
enum Color {
  Red = 'RED',
  Green = 'GREEN',
  Blue = 'BLUE',
}

استخدام Enums في الدوال

استخدم نوع enum كنوع لمعلمة لتقييد القيم بمجموعة القيم المعرّفة.
function move(dir: Direction): void {
  console.log('Moving:', Direction[dir]);
}
move(Direction.Up);

التعيين العكسي (للرقمية فقط)

تدعم التعدادات الرقمية التعيين العكسي: يمكنك البحث عن اسم العضو انطلاقًا من قيمته. أما التعدادات النصية فلا تدعم ذلك.
enum Status { Active = 1, Inactive = 2 }
console.log(Status[1]); // 'Active'
console.log(Status.Active); // 1

التعدادات const

يُضمَّن `const enum` في وقت الترجمة، لذلك لا يُصدَر أي كائن JavaScript. يؤدي ذلك إلى تقليل حجم الحزمة، لكنه يحد من الاستكشاف في وقت التشغيل.
const enum Axis { X, Y, Z }
const a = Axis.X; // compiled to: const a = 0;

Enums أم اتحاد القيم الحرفية

يفضّل كثير من مطوري TypeScript أنواع اتحاد القيم الحرفية على enums. فهي أخف وزنًا وتعمل من دون شيفرة وقت التشغيل.
// Enum
enum Dir { Up = 'UP', Down = 'DOWN' }

// Union literal (preferred by many)
type Dir2 = 'UP' | 'DOWN';

التعدادات غير المتجانسة (تجنّبها)

يُسمح بخلط القيم النصية والرقمية في enum واحد، لكنه مربك. تجنّب هذا النمط.
// Avoid:
enum Mixed { A = 1, B = 'bee' }

Enums كائنات حقيقية في وقت التشغيل

بخلاف الواجهات والبدائل النوعية، تُصدِر enums شيفرة JavaScript. ويكون الناتج المترجم كائن JavaScript يتضمن تعيينات من الاسم إلى القيمة ومن القيمة إلى الاسم (في التعدادات الرقمية).

التكرار على قيم Enum

استخدم Object.values() أو Object.keys() على كائن enum للتكرار على أعضائه في وقت التشغيل.
enum Role { Admin = 'ADMIN', User = 'USER', Guest = 'GUEST' }
const roles = Object.values(Role);
console.log(roles); // ['ADMIN', 'USER', 'GUEST']

تحقق سريع

أي نوع من التعدادات يدعم التعيين العكسي (البحث عن الاسم انطلاقًا من القيمة)؟

مراجعة

تعرّف Enums مجموعات ثابتة مسماة على شكل كائنات JavaScript حقيقية. استخدم التعدادات النصية من أجل الوضوح، والتعدادات const من أجل الأداء، وفكّر في أنواع اتحاد القيم الحرفية كبديل أخف.

الأسئلة الشائعة

هل درس «التعدادات: الثوابت الرقمية والنصية» مجاني؟

نعم — نص درس «التعدادات: الثوابت الرقمية والنصية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ماذا ستتعلم في «التعدادات: الثوابت الرقمية والنصية»؟

استخدموا التعدادات لاستبدال السلاسل النصية والأرقام السحرية تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «التعدادات: الثوابت الرقمية والنصية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. المصفوفات ذات الأنواع: T[] وArray
  2. المصفوفات للقراءة فقط والبيانات غير القابلة للتغيير
  3. Tuples: مصفوفات ذات أنواع وطول ثابت
  4. التعدادات: الثوابت الرقمية والنصية
← العودة إلى TypeScript Academy