Enums مقابل const enum والبدائل المعتمدة على union-literal
قارن بين enums التقليدية و const enums والبدائل المعتمدة على union-literal، وتعلّم المفاضلات المتعلقة بتجربة المطوّر والحجم والأمان.
Enums مقابل const enum والبدائل المعتمدة على union-literal درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 3 دروس في المجموع.
مقدمة
الهدف: معرفة متى نستخدم enum أو const enum أو أنواع union-literal. ستقارنون بين ناتج التشغيل وDX وtree-shaking.
Enum رقمي
ينتج numeric enums كائنًا أثناء التشغيل، ويسمح بالربط العكسي. وهو بسيط، لكنه يزيد حجم الحزمة قليلًا.
enum Direction {
Left = 0,
Right = 1
}
const d: Direction = Direction.Left;
console.log(d); // 0Enum نصي
تظهر string enums بوضوح في السجلات وواجهات برمجة التطبيقات. كما أنها تنتج كائنات أثناء التشغيل.
enum Status {
Ok = "ok",
Error = "error"
}
const s: Status = Status.Ok;
console.log(s); // "ok"const enum
يُضمّن const enum القيم أثناء الترجمة، فلا يضيف تكلفة أثناء التشغيل، لكنه يتطلب اتساق أدوات البناء.
const enum Axis {
X = 0,
Y = 1
}
const a: Axis = Axis.X;
console.log(a); // 0 (inlined)بديل Union-literal
Union-literals: لا تنتج مخرجات أثناء التشغيل، وتوفر تضييقًا ممتازًا للنوع داخل switch، كما تدعم tree-shaking بكفاءة. وهي خيار افتراضي ممتاز في حالات كثيرة.
type Dir = "left" | "right";
function move(d: Dir) {
switch (d) {
case "left":
console.log("←");
break;
case "right":
console.log("→");
break;
}
}
move("left");متى نختار
إرشادات:
- فضّلوا union-literals لمعظم مجموعات الخيارات، لأنها لا تفرض تكلفة أثناء التشغيل.
- استخدموا enum إذا احتجتم إلى كائن أثناء التشغيل أو إلى ربط عكسي.
- استخدموا const enum للثوابت المضمّنة عندما تدعمها أدوات البناء.
تحقق من Union-literal مقابل enum
تحقق سريع: أي العبارات التالية صحيحة بشأن أنواع union-literal بوصفها بديلًا عن enums؟
مراجعة
مراجعة: ينشئ enum كائنات أثناء التشغيل؛ ويضمّن const enum القيم دون تكلفة أثناء التشغيل؛ وتوفر union-literals أمان الأنواع دون مخرجات أثناء التشغيل. اختاروا ما يناسب أدوات البناء واحتياجات واجهة برمجة التطبيقات.
الأسئلة الشائعة
هل درس «Enums مقابل const enum والبدائل المعتمدة على union-literal» مجاني؟
نعم — نص درس «Enums مقابل const enum والبدائل المعتمدة على union-literal» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «Enums مقابل const enum والبدائل المعتمدة على union-literal»؟
قارن بين enums التقليدية و const enums والبدائل المعتمدة على union-literal، وتعلّم المفاضلات المتعلقة بتجربة المطوّر والحجم والأمان. تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «Enums مقابل const enum والبدائل المعتمدة على union-literal»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المصفوفات و ReadonlyArray
- المجموعات والجموعات المُعنونة
- Enums مقابل const enum والبدائل المعتمدة على union-literal