noUselessTernary
诊断类别:lint/complexity/noUselessTernary
¥Diagnostic Category: lint/complexity/noUselessTernary
自从:v1.5.0
¥Since: v1.5.0
来源:
¥Sources:
-
与以下相同:
no-unneeded-ternary
¥Same as:
no-unneeded-ternary
当存在更简单的替代方案时,禁止使用三元运算符。
¥Disallow ternary operators when simpler alternatives exist.
在 JavaScript 中,使用条件表达式在两个布尔值之间进行选择,而不是使用逻辑非(!
)或双非(!!
)将测试转换为布尔值,这是一个常见的错误。
¥It’s a common mistake in JavaScript to use a conditional expression to select between two
boolean values instead of using the logical NOT (!
) or double NOT (!!
) to convert the test to a boolean.
¥Examples
¥Invalid
code-block.js:1:9 lint/complexity/noUselessTernary FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Unnecessary use of boolean literals in conditional expression.
> 1 │ var a = x ? true : true;
│ ^^^^^^^^^^^^^^^
2 │
ℹ Simplify your code by directly assigning the result without using a ternary operator.
ℹ If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
ℹ Unsafe fix: Remove the conditional expression with
1 │ var·a·=·x·?·true·:·true;
│ -----------
code-block.js:1:9 lint/complexity/noUselessTernary FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Unnecessary use of boolean literals in conditional expression.
> 1 │ var a = foo === 1 ? false : true;
│ ^^^^^^^^^^^^^^^^^^^^^^^^
2 │
ℹ Simplify your code by directly assigning the result without using a ternary operator.
ℹ If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
ℹ Unsafe fix: Remove the conditional expression with
1 │ - var·a·=·foo·===·1·?·false·:·true;
1 │ + var·a·=·foo·!==1;
2 2 │
code-block.js:1:9 lint/complexity/noUselessTernary FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Unnecessary use of boolean literals in conditional expression.
> 1 │ var a = foo + 1 ? false : true;
│ ^^^^^^^^^^^^^^^^^^^^^^
2 │
ℹ Simplify your code by directly assigning the result without using a ternary operator.
ℹ If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
ℹ Unsafe fix: Remove the conditional expression with
1 │ - var·a·=·foo·+·1·?·false·:·true;
1 │ + var·a·=·!(foo·+·1·);
2 2 │
code-block.js:1:9 lint/complexity/noUselessTernary FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Unnecessary use of boolean literals in conditional expression.
> 1 │ var a = foo + 1 ? true : false;
│ ^^^^^^^^^^^^^^^^^^^^^^
2 │
ℹ Simplify your code by directly assigning the result without using a ternary operator.
ℹ If your goal is negation, you may use the logical NOT (!) or double NOT (!!) operator for clearer and concise code.
Check for more details about NOT operator.
ℹ Unsafe fix: Remove the conditional expression with
1 │ - var·a·=·foo·+·1·?·true·:·false;
1 │ + var·a·=·!!(foo·+·1·);
2 2 │
¥Valid
¥Resources
逻辑错误:https://web.nodejs.cn/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT
¥Logical NOT: https://web.nodejs.cn/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT
¥Related links