eslint/no-extra-boolean-cast 正确性
作用
此规则不允许不必要的布尔类型转换。
为什么这不好?
在诸如 if 语句的测试表达式等上下文中,表达式的结果本来就会被强制转换为布尔值, 因此通过双重否定(!!)或 Boolean 调用来转换为布尔值是多余的。
示例
以下是此规则的错误代码示例:
javascript
var foo = !!!bar;
var foo = Boolean(!!bar);
if (!!foo) {
}
if (Boolean(foo)) {
}
// 启用 "enforceForInnerExpressions" 选项
if (!!foo || bar) {
}以下是此规则的正确代码示例:
javascript
var foo = !bar;
var foo = Boolean(bar);
if (foo) {
}
if (foo) {
}
// 启用 "enforceForInnerExpressions" 选项
if (foo || bar) {
}配置
此规则接受一个包含以下属性的配置对象:
enforceForInnerExpressions
type: boolean
default: false
当设置为 true 时,除了检查默认上下文之外,还会检查 结果用于布尔上下文的表达式中是否存在额外的布尔类型转换。见下方示例。 默认值为 false,这意味着此规则默认不会警告内层表达式中的额外布尔类型 转换。
使用方法
To enable this rule using the config file or in the CLI, you can use:
json
{
"rules": {
"no-extra-boolean-cast": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
rules: {
"no-extra-boolean-cast": "error",
},
});bash
oxlint --deny no-extra-boolean-cast版本
此规则在 v0.0.8 中添加。
