noUselessTernary
Summary
Section titled “Summary”- Rule available since: v1.5.0
- Diagnostic Category: lint/complexity/noUselessTernary
- This rule is recommended, which means is enabled by default.
- This rule has an unsafe fix.
- The default severity of this rule is information.
- Sources:
- Same as no-unneeded-ternary
 
- Same as 
How to configure
Section titled “How to configure”{  "linter": {    "rules": {      "complexity": {        "noUselessTernary": "error"      }    }  }}Description
Section titled “Description”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.
Examples
Section titled “Examples”Invalid
Section titled “Invalid”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;Resources
Section titled “Resources”Logical NOT: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT
Related links
Section titled “Related links”Copyright (c) 2023-present Biome Developers and Contributors.