在Javascript中,有时我会不小心写:
if (obj.method) { // <-- bad
...
}
代替
if (obj.method()) { // <-- good
...
}
鉴于typescript-eslint是typeaware的,是否存在检测此用法的规则?我要说的是99/100次,我不是想将这种方法用作布尔值。
答案 0 :(得分:1)
如果您打开打字稿的strictNullChecks
编译器选项(或全部使用的strict
编译器选项),TS将自动为您执行此特定检查!
否则,如注释中提到的@ x4rf41一样,您可以使用短绒棉毛来抓它。
有两种打字稿保留规则,可以在这里为您提供帮助:
no-unnecessary-condition
将确保实际上满足您的所有条件(即,由于该函数不可为空,因此将捕获这种情况)。strict-boolean-expressions
将确保您的所有if
条件均为布尔值(即,由于该函数不是布尔值,因此将捕获这种情况)。