首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

no-unneeded-ternary

--fix命令行上的选项可以自动修复一些被这条规则反映的问题。

在 JavaScript 中使用条件表达式来选择两个布尔值而不是使用!将测试转换为布尔值。这里有些例子:

代码语言:javascript
复制
// Bad
var isYes = answer === 1 ? true : false;

// Good
var isYes = answer === 1;


// Bad
var isNo = answer === 1 ? false : true;

// Good
var isNo = answer !== 1;

另一个常见的错误是使用单个变量作为条件测试和结果。在这种情况下,OR可以使用逻辑来提供相同的功能。这里是一个例子:

代码语言:javascript
复制
// Bad
var foo = bar ? bar : 1;

// Good
var foo = bar || 1;

规则细节

当存在更简单的选择时,此规则不允许三元运算符。

此规则的错误代码示例:

代码语言:javascript
复制
/*eslint no-unneeded-ternary: "error"*/

var a = x === 2 ? true : false;

var a = x ? true : false;

此规则的正确代码示例:

代码语言:javascript
复制
/*eslint no-unneeded-ternary: "error"*/

var a = x === 2 ? "Yes" : "No";

var a = x !== false;

var a = x ? "Yes" : "No";

var a = x ? y : x;

var a = x ? x : 1;

选项

该规则有一个对象选项:

  • "defaultAssignment": true (默认)允许条件表达式作为默认分配模式
  • "defaultAssignment": false 不允许将条件表达式作为默认的分配模式

defaultAssignment

此规则的附加错误代码示例包含以下{ "defaultAssignment": false }选项:

代码语言:javascript
复制
/*eslint no-unneeded-ternary: ["error", { "defaultAssignment": false }]*/

var a = x ? x : 1;

何时不使用它

如果您不关心条件表达式中不必要的复杂性,则可以关闭此规则。

相关规则

  • no-ternary
  • no-nested-ternary

版本

该规则在 ESLint 0.21.0中引入。

资源

扫码关注腾讯云开发者

领取腾讯云代金券