eslint/no-unneeded-ternary 可疑
它的作用
禁止在存在更简单替代方案时使用三元运算符
为什么这是不好的?
在 JavaScript 中,一个常见错误是使用条件表达式来在两个布尔值之间进行选择,而不是使用 ! 来将测试转换为布尔值。
另一个常见错误是将单个变量同时用作条件测试和结果表达式。在这种情况下,可以使用逻辑或(OR)操作符来实现相同的功能。
示例
此规则的错误代码示例:
js
const isYes = answer === 1 ? true : false;
const isNo = answer === 1 ? false : true;
foo(bar ? bar : 1);此规则的正确代码示例:
js
const isYes = answer === 1;
const isNo = answer !== 1;
foo(bar || 1);配置
该规则接受一个配置对象,包含以下属性:
defaultAssignment
type: boolean
default: true
是否允许默认赋值模式 x ? x : y。
当设置为 false 时,规则还会标记如 x ? x : y 的情况,并建议改用逻辑或形式 x || y。当为 true(默认值)时,此类默认赋值被允许且不会被报告。
如何使用
要通过配置文件或 CLI 启用此规则,可以使用:
json
{
"rules": {
"no-unneeded-ternary": "error"
}
}bash
oxlint --deny no-unneeded-ternary