问题1:如下写法为何不报错呢?我理解变量 a
的值应该是 1 ~ 7
?
enum Weekday {
Monday = 1,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday,
}
//不报错
const a: Weekday = 100;
问题2:如下写法为何会报错呢?
enum Direction {
Up = 'UP',
Down = 'DOWN',
Left = 'LEFT',
Right = 'RIGHT',
}
//error:不能将类型“"DOWN"”分配给类型“Direction”
const b: Direction = 'DOWN';
问题3:那如何实现上面的这种需求呢?
这个问题上周研究了半天,大佬们回答的
断言
和Direction.DOWN 取代 'DOWN'
也可以临时规避此问题。此类问题在typescript github上有很多issue反馈,似乎是ts设计问题。
#32690中,提问者给出一种解决方法:
其它相关issues:#31834,#30629,#26362,#22464,#22311