Avatar ·

如何在 TypeScript 中将字符串转换为 enum?

大家好!我刚开始学习 TypeScript,在使用枚举(enum)时遇到了问题。我有一个描述订单状态的 enum: ```typescript enum OrderStatus { Pending = 'pending', Processing = 'processing', Shipped = 'shipped', Delivered = 'delivered', Cancelled = 'cancelled' } ``` 我从 API(例如服务器的 JSON 响应)中获取一个字符串,其中包含状态值,比如 `'shipped'`。我需要将这个字符串转换回 `OrderStatus` 类型,以便在 switch-case 中使用它,或者传递给期望该 enum 的函数。 问题在于简单的赋值不起作用: ```typescript const statusFromApi: string = 'shipped'; const orderStatus: OrderStatus = statusFromApi; // 错误:类型 'string' 不能赋值给类型 'OrderStatus' ``` 我尝试过使用类型断言(`as OrderStatus`),但这似乎不安全——如果传入一个不在 enum 中的字符串,不会报错,但行为会...