【发布时间】:2019-06-16 19:11:04
【问题描述】:
我有这个代码
enum Example {
First = "First",
Second = "Second"
}
let a = [1, 2];
let newStatus: Example = Example.First;
a.forEach(i => {
newStatus = Example.Second;
});
if (newStatus === Example.Second) {
// do something
}
预期:没有错误
实际:错误:[ts] 此条件将始终返回“false”,因为“Example.First”和“Example.Second”类型没有重叠。 [2367]
【问题讨论】:
-
不是 100% 重复,但解释与此处相同:stackoverflow.com/questions/48626568/why-boolean-becomes-true/…。基本控制流分析限制,改用
let newStatus = Example.First as Example; -
作为答案发布?
标签: typescript visual-studio-code