条件在Typescript中重叠



假设我有一些简单的逻辑:

let bool = false
const seven = 7
const arr = [1,2,3,4,5,6,7]

arr.forEach(element => {
if (element === seven) {
bool = true
}
});

现在我不想调用函数如果"已设置为true:

if (bool === true){
doSomething()
}

Typescript在这种情况下给出了一个错误:

This condition will always return 'false' since the types 'false' and 'true' have no overlap.

Typescript抱怨,即使逻辑上我知道bool在触发条件块时将为真。我该如何解决这个问题?

我不知道Typescript编译器会抱怨这样的事情,但这是一个奇怪的方式有这样一个条件语句,因为:

if (bool === true)

等于:

if (bool)

但是你也可以:

  1. 按正常方式写条件:if (bool) { ... }(强烈推荐)
  2. 强制类型为布尔值:if((bool as boolean) === true ) { ... }(它可以工作,但请不要这样做)

相关内容

  • 没有找到相关文章

最新更新