4

是否有 TSLint/ESLint 规则来防止不必要的布尔比较,例如:

if (result === false) {
  // do something
} 
4

2 回答 2

3

TSLint 支持no-boolean-literal-compare执行此操作的规则。

"no-boolean-literal-compare": truerules阵列中将启用此功能。

文档链接:https ://palantir.github.io/tslint/rules/no-boolean-literal-compare/

于 2019-10-21T20:39:00.803 回答
2

您目前可以使用 ESLint 完成此操作:

"no-restricted-syntax": [
    "error",
     {
        "selector": "BinaryExpression[operator=/^(==|===|!=|!==)$/][left.raw=/^(true|false)$/], BinaryExpression[operator=/^(==|===|!=|!==)$/][right.raw=/^(true|false)$/]",
        "message": "Don't compare for equality against boolean literals"
     }
]

选择器不允许使用==, ===, !=, 以及!==当其中一个(或两个)操作数是布尔文字时。


资源

于 2017-12-21T18:14:53.670 回答