كيفية تحويل string إلى enum في TypeScript؟
مرحباً بالجميع! أنا مبتدئ في TypeScript وواجهت مشكلة أثناء العمل مع التعدادات (enum). لدي enum لحالات الطلب:
```typescript
enum OrderStatus {
Pending = "pending",
Processing = "processing",
Shipped = "shipped",
Delivered = "delivered",
Cancelled = "cancelled"
}
```
أحصل على الحالة من API كسلسلة نصية، مثلاً `"processing"`. أحتاج لتحويل هذه السلسلة النصية إلى قيمة enum لاستخدامها في switch/case أو لمقارنتها بقيم أخرى. التحويل البسيط باستخدام `as OrderStatus` يعمل بشكل غير مستقر — إذا كانت السلسلة النصية لا تطابق أي قيمة، لا يظهر الكود خطأ في الترجمة، ولكن في وقت التشغيل يحدث سلوك غير متوقع.
كذلك جربت استخدام `OrderStatus["processing"]`، لكن هذا يُرجع `undefined`. كيف يمكن تحويل string إلى enum بشكل صحيح وآمن؟ أحتاج حلاً يتحقق من وجود القيمة في enum، ويُظهر خطأ أو يُرجع قيمة افتراضية.