Skip to content

noUselessTernary (JavaScript)

Language JavaScript (and super languages)
biome.json
{
"linter": {
"rules": {
"complexity": {
"noUselessTernary": "error"
}
}
}
}

Disallow ternary operators when simpler alternatives exist.

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.

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 = 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;
│ -----------
var a = foo === 1 ? false : 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 │

var a = foo + 1 ? false : 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 │

var a = foo + 1 ? true : false;
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 │

var a = x === 2 ? 'Yes' : 'No';
var a = x === 2 ? 'Yes' : false;

Logical NOT: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT