枚举类型:既然键值都可以访问,为什么这里通过值访问会报错呢?

来源:3-2 基础类型(下)

凝弧

2019-05-10

enum Color {
    Red,    // 0
    Green,  // 1
    Blue    // 2
}

let c: Color = Color.Blue
let d: Color = Color[2]

console.log(typeof c, c)  // 2
console.log(typeof d, d) // 报错:不能将类型“string”分配给类型“Color” ts(2322) 

图片描述

写回答

1回答

ustbhuangyi

2019-05-12

Color[2] 访问的是 Blue 字符串,当然会报错了,你可以 Color['Blue'] 或者 Color[Color[2]] 都是可以的

0
3
ustbhuangyi
回复
慕莱坞0998854
建议你看看枚举编译后的结果,就知道了,枚举默认从 0 开始的。
2019-06-17
共3条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程