如何在 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" 是枚举中的一个值!如何正确地将字符串值传递给函数?