typescript - 当您将方法用作布尔值时,是否有一个 typescript-eslint 规则会提醒您?
问题描述
在 Javascript 中,我有时会不小心写到:
if (obj.method) { // <-- bad
...
}
代替
if (obj.method()) { // <-- good
...
}
鉴于 typescript-eslint 是类型感知的,是否有检测这种用法的规则?我会说 99/100 次,我并不想将该方法用作布尔值。
解决方案
如果您打开 typescript 的strictNullChecks
编译器选项(或包罗万象的编译strict
器选项),TS 将自动为您执行此特定检查!
否则,正如评论中提到的@x4rf41,您可以使用 linter 来捕捉它。
有两个 typescript-eslint 规则可以帮助你:
no-unnecessary-condition
将确保您的所有条件都是实际需要的(即它会捕获这种情况,因为该函数不可为空)。strict-boolean-expressions
将确保您的所有if
条件都是布尔值(即它会捕获这种情况,因为该函数不是布尔值)。