Avatar ·

如何在 TypeScript 中创建带有字符串值的 enum?

你好!我刚开始学习 TypeScript,在处理枚举(enums)时遇到了问题。我需要创建一个枚举,用于存储电商网站中订单状态对应的字符串值:"pending"(待处理)、"shipped"(已发货)、"delivered"(已送达)和 "cancelled"(已取消)。 我尝试写了这样的代码: ```typescript enum OrderStatus { Pending = "pending", Shipped = "shipped", Delivered = "delivered", Cancelled = "cancelled" } ``` 看起来一切正常,但我不确定这是否正确。当我尝试在函数中使用这个枚举时: ```typescript function updateOrderStatus(status: OrderStatus) { console.log(`订单状态已更新为:${status}`); } updateOrderStatus("shipped"); // 错误! ``` TypeScript 报错:`Argument of type '"shipped"' is not assignable to parameter of type 'OrderStatus'`。 为什么会这样?毕竟 "shipped" 是枚举中的一个值!如何正确地将字符串值传递给函数?