是否有 TSLint/ESLint 规则来防止 (boolean === true) 类型的比较?

Is there a TSLint/ESLint rule to prevent (boolean === true) type of comparisons?

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

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

您目前可以使用 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"
     }
]

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


Source

TSLint 支持规则 no-boolean-literal-compare,它就是这样做的。

rules 数组中的

"no-boolean-literal-compare": true 将启用此功能。

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