Avatar ·

كيفية إنشاء enum مع قيم نصية في TypeScript؟

مرحبًا! لقد بدأت للتو في تعلم TypeScript وواجهت مشكلة عند العمل مع التعدادات (enums). أحتاج إلى إنشاء enum يخزن قيمًا نصية لحالات الطلب في متجر إلكتروني: "pending" (قيد الانتظار)، "shipped" (تم الشحن)، "delivered" (تم التوصيل)، و"cancelled" (ملغي). لقد جربت كتابة الكود التالي: ```typescript enum OrderStatus { Pending = "pending", Shipped = "shipped", Delivered = "delivered", Cancelled = "cancelled" } ``` يبدو أن كل شيء يعمل، لكنني لست متأكدًا مما إذا كان هذا صحيحًا. عندما أحاول استخدام هذا enum في دالة: ```typescript function updateOrderStatus(status: OrderStatus) { console.log(`تم تغيير حالة الطلب إلى: ${status}`); } updateOrderStatus("shipped"); // خطأ! ``` TypeScript يعطي خطأ: `Argument of type '"shipped"' is not assignable to parameter of type 'OrderStatus'`. لماذا يحدث هذا؟ ففي النهاية "shipped" هي إحدى قيم enum! كيف يمكنني تمرير القيم النصية بشكل صحيح إلى الدالة؟