这是我最简单的示例:
class Game {
phase: "draw" | "action";
constructor() {
this.phase = "draw";
}
randomChangePhase() {
if(Math.random() > 0.5) {
this.phase = "action";
} else {
this.phase = "draw";
}
}
doTurn(){
if(this.phase !== "draw") {
throw new Error(`cannot call doTurn in phase ${this.phase}`);
}
this.randomChangePhase();
while(this.phase !== "action") {
this.randomChangePhase();
}
console.log(this.phase);
}
}
使用tsc版本3.7.5,我看到此错误:
typescript / test.ts:24:15-错误TS2367:这种情况将始终存在 因为类型“ draw”和“ action”没有重叠,所以返回“ true”。
24 while(this.phase!==“ action”){ ~~~~~~~~~~~~~~~~~~~~~~
发现1个错误。
你们能否证实我的理解,这实际上是一个错误?
如果是这样,是否知道这是一个已知错误,或者是否有办法在配置中解决此问题?
编辑:抱歉,代码缺少关键部分。