枚举问题

来源:3-1 基础类型(上)

Brannua

2020-06-15

  • 老师好
	enum Color { Red = 1, Green = 5, Blue =7 }

	let c: Color = Color['Green'];

	console.log(c);

	let d: Color = Color[5];
	
	console.log(d);
  • 打印出 c 是 5, 可是 c 的类型注解不是 number 呀?

  • d 是 string 类型, 却由于它的类型注解为Color, 就报错了, 为什么 c 不报错, d却报错了?

写回答

1回答

ustbhuangyi

2020-06-16

c 的类型是枚举类型 Color,可以通过 Color['Green'] 去获取它的枚举值,枚举值可以是一个数字,当然你写 number 类型也不会错。

而 Color[5] 找的是枚举字符串 key,所以应该是字符串类型。

0
1
Brannua
非常感谢!
2020-06-16
共1条回复

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

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

2629 学习 · 877 问题

查看课程