كيفية تحويل 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، لن يحدث خطأ، لكن السلوك