Avatar ·

كيفية تحويل 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، ويُظهر خطأ أو يُرجع قيمة افتراضية.