是否有 ESLint 或 TSLint 规则来检查真/假逻辑运算符不适用于数字?

Cyr*_*don 2 javascript lint numbers typescript eslint

我今天有一个错误,我意外地跳过了对函数的调用,因为我的变量是 0:

const foo: number | undefined = getFoo();
if(foo) {
   // Will not be called if foo is zero
   doSomething(foo);
}
Run Code Online (Sandbox Code Playgroud)

这是我经常使用的一种模式,用于测试是否定义了变量。这适用于一切,对象,数组,字符串......除了数字。
这不是我第一次遇到这样的错误。

是否有一条规则会提醒我,例如:

if(foo)
   --- Warning, testing a number variable that can be defined, but equals to zero
Run Code Online (Sandbox Code Playgroud)

一些会迫使我写的东西:

if(foo !== undefined)
Run Code Online (Sandbox Code Playgroud)

它不太漂亮,但至少它具有正确的行为。

编辑:考虑到这一点后,类型string和值""(空字符串)似乎也会出现同样的问题