是否有 TSLint/ESLint 规则来防止不必要的布尔比较,例如:
if (result === false) {
// do something
}
TSLint 支持no-boolean-literal-compare
执行此操作的规则。
"no-boolean-literal-compare": true
在rules
阵列中将启用此功能。
文档链接:https ://palantir.github.io/tslint/rules/no-boolean-literal-compare/
您目前可以使用 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"
}
]
选择器不允许使用==
, ===
, !=
, 以及!==
当其中一个(或两个)操作数是布尔文字时。