كيفية استخدام Enums في TypeScript خطوة بخطوة
إن العناصر المعدودة في TypeScript هي طريقة لتحديد مجموعة من الثوابت المسماة التي يمكن استخدامها لتمثيل مجموعة من القيم ذات الصلة. وهي تجعل الكود أكثر قابلية للقراءة والصيانة من خلال إعطاء أسماء مألوفة لهذه القيم. سيرشدك هذا الدليل خلال استخدام العناصر المعدودة في TypeScript خطوة بخطوة، ويغطي أنواعها وفوائدها وأمثلة عملية.
ما هو Enum؟
enum (اختصارًا لـ "enumeration") هو نوع بيانات خاص في TypeScript يسمح لك بتحديد مجموعة من الثوابت المسماة. يمكن لهذه الثوابت المسماة أن تمثل قيمًا رقمية أو نصية، مما يجعل الكود الخاص بك أكثر وصفًا وأقل عرضة للخطأ.
أنواع العناصر في TypeScript
هناك ثلاثة أنواع من العناصر في TypeScript:
- الأعداد الرقمية
- سلاسل الأرقام
- التعدادات غير المتجانسة
الأعداد الرقمية
تعد القيم العددية هي القيمة الافتراضية في TypeScript. وهي عبارة عن مجموعة من القيم المسماة التي يتم تعيين قيم عددية لها تلقائيًا بدءًا من 0، أو من قيمة بداية مخصصة إذا تم تحديدها.
مثال على التعداد الرقمي الأساسي
فيما يلي مثال بسيط لعدد رقمي:
enum Direction {
Up,
Down,
Left,
Right
}
let move: Direction = Direction.Up;
console.log(move); // Output: 0
في هذا المثال، يحتوي التعداد Direction
على أربعة أعضاء: Up
وDown
وLeft
وRight
. بشكل افتراضي، يتم تعيين القيمة 0
لـ Up
، وتكون القيمة 1
لـ Down
، وهكذا. يمكنك أيضًا تحديد قيم رقمية مخصصة للأعضاء.
تعداد رقمي بقيم مخصصة
يمكنك تعيين قيم مخصصة لأعضاء التعداد:
enum Status {
New = 1,
InProgress,
Done = 5,
Cancelled
}
console.log(Status.New); // Output: 1
console.log(Status.InProgress); // Output: 2
console.log(Status.Done); // Output: 5
console.log(Status.Cancelled); // Output: 6
في هذا المثال، يتم تعيين New
إلى 1
، ويتم تعيين InProgress
تلقائيًا إلى 2
، ويتم تعيين Done
إلى 5
، ويتم تعيين Cancelled
تلقائيًا إلى 6
.
سلاسل الأرقام
تعد عدادات السلسلة نوعًا آخر من عدادات حيث يتم تهيئة كل عضو بحرف سلسلة، مما يجعلها أكثر قابلية للقراءة وأسهل في التصحيح.
مثال على عد السلسلة الأساسية
فيما يلي مثال على سلسلة من الأرقام:
enum Direction {
Up = "UP",
Down = "DOWN",
Left = "LEFT",
Right = "RIGHT"
}
let move: Direction = Direction.Left;
console.log(move); // Output: "LEFT"
في هذا المثال، يتم تهيئة كل عنصر من عناصر التعداد بقيمة سلسلة. وعلى عكس التعدادات الرقمية، لا تحتوي التعدادات السلسلة على قيم متزايدة تلقائيًا.
التعدادات غير المتجانسة
التعدادات غير المتجانسة هي تعدادات تحتوي على عناصر نصية ورقمية. ورغم أنه من الممكن تعريفها، إلا أنه لا يُنصح بذلك بشكل عام لأنه قد يؤدي إلى حدوث ارتباك وأخطاء في الكود.
مثال على التعداد غير المتجانس
فيما يلي مثال على التعداد غير المتجانس:
enum MixedEnum {
Yes = "YES",
No = 0,
Maybe = 1
}
console.log(MixedEnum.Yes); // Output: "YES"
console.log(MixedEnum.No); // Output: 0
في هذا المثال، يحتوي MixedEnum
على قيم نصية وقيم رقمية. استخدم مثل هذه القيم بحذر لأنها قد تسبب ارتباكًا.
حالات استخدام Enum
تعتبر العناصر التعدادية مفيدة في مجموعة متنوعة من السيناريوهات:
- تمثيل مجموعة من الثوابت ذات الصلة مثل الاتجاهات (أعلى، أسفل، يسار، يمين).
- تعريف الحالات في آلة الحالة (جديدة، قيد التقدم، تم، تم إلغاؤها).
- استخدامها في عبارات التبديل للحصول على قراءة أفضل.
مثال على التعداد في حالة التبديل
يؤدي استخدام التعدادات في عبارة switch-case إلى تحسين قابلية قراءة الكود ويجعل إدارة الحالات أسهل.
enum Status {
New,
InProgress,
Done,
Cancelled
}
function getStatusMessage(status: Status): string {
switch (status) {
case Status.New:
return "The task is new.";
case Status.InProgress:
return "The task is in progress.";
case Status.Done:
return "The task is completed.";
case Status.Cancelled:
return "The task is cancelled.";
default:
return "Unknown status.";
}
}
console.log(getStatusMessage(Status.InProgress)); // Output: "The task is in progress."
في هذا المثال، أصبحت عبارة switch-case أكثر قابلية للقراءة وأقل عرضة للأخطاء، وذلك بفضل استخدام enums.
خاتمة
توفر العناصر المعدودة في TypeScript طريقة فعّالة لتحديد مجموعة من الثوابت المسماة، مما يحسن قابلية قراءة الكود وسلامة النوع. من خلال استخدام العناصر المعدودة الرقمية أو النصية أو حتى غير المتجانسة، يمكنك إدارة وتنظيم الكود الخاص بك بشكل أفضل. باستخدام هذا الدليل المفصل، يجب أن تشعر الآن بالراحة عند استخدام العناصر المعدودة في TypeScript لجعل الكود الخاص بك أكثر نظافة وقابلية للصيانة.