如何在 TypeScript 中将字符串转换为 enum?
大家好!我是 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`。如何正确且安全地将字符串转换为 enum?需要一个解决方案来检查该值是否存在于 enum 中,并抛出错误或返回默认值。