ts枚举报错元素隐式具有 "any" 类型,因为类型为 "string" 的表达式不能用于索引类型 "typeof StatusMap"。
时间: 2023-09-23 12:06:48 浏览: 189
javascript数据类型详解
这个错误是因为 TypeScript 编译器无法确定枚举类型的值是否在枚举中定义,导致类型被隐式定义为 `any`。
你可以通过在枚举中定义所有可能的值,或者通过将枚举的类型声明为 `keyof typeof` 来修复该错误。
以下是一个示例:
```typescript
enum StatusMap {
Pending = "PENDING",
Approved = "APPROVED",
Rejected = "REJECTED"
}
type Status = keyof typeof StatusMap;
function getStatusLabel(status: Status) {
return StatusMap[status];
}
```
在这个示例中,我们使用 `typeof` 来获取枚举对象的类型,并使用 `keyof` 来获取枚举中定义的所有键的联合类型。我们还定义了一个 `Status` 类型来表示枚举中的键,以便我们可以将其传递给 `getStatusLabel` 函数。
阅读全文