Avatar ·

كيفية تحويل string إلى enum في TypeScript؟

مرحباً بالجميع! لقد بدأت للتو في تعلم TypeScript وواجهت مشكلة عند العمل مع enumerations (enum). لدي enum يصف حالات الطلب: ```typescript enum OrderStatus { Pending = 'pending', Processing = 'processing', Shipped = 'shipped', Delivered = 'delivered', Cancelled = 'cancelled' } ``` أتلقى string من API (على سبيل المثال، من استجابة JSON للخادم) تحتوي على قيمة الحالة، مثل `'shipped'`. أحتاج إلى تحويل هذه string مرة أخرى إلى نوع `OrderStatus` لاستخدامها في switch-case أو تمريرها إلى دالة تتوقع هذا enum. المشكلة هي أن التعيين البسيط لا يعمل: ```typescript const statusFromApi: string = 'shipped'; const orderStatus: OrderStatus = statusFromApi; // خطأ: Type 'string' is not assignable to type 'OrderStatus' ``` لقد جربت استخدام type casting (`as OrderStatus`)، لكن هذا يبدو غير آمن — إذا جاءت string غير موجودة في enum، لن يحدث خطأ، لكن السلوك