请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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回答

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

0 回复 有任何疑惑可以回复我~
  • 提问者 凝弧 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-05-26 07:48:06
  • 老师,能不能说得更详细一些,我也有这个疑问。类比一下,为什么let c: Color = Color.blue不会报错呢?那Color.blue访问的是2这个数值吧?为什么这里就能把定义为Color类型的变量c赋值为2呢?
    回复 有任何疑惑可以回复我~ 2019-06-15 21:15:38
  • 建议你看看枚举编译后的结果,就知道了,枚举默认从 0 开始的。
    回复 有任何疑惑可以回复我~ 2019-06-17 00:12:12
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号