Lint Rules

useSimplifiedLogicExpression (since v0.7.0)

This rule is recommended by Rome.

Discard redundant terms from logical expressions.

Examples

Invalid

const boolExp = true;
const r = true && boolExp;
complexity/useSimplifiedLogicExpression.js:2:11 lint/complexity/useSimplifiedLogicExpression  FIXABLE  ━━━━━━━━━━

   Logical expression contains unnecessary complexity.
  
    1 │ const boolExp = true;
  > 2 │ const r = true && boolExp;
             ^^^^^^^^^^^^^^^
    3 │ 
  
   Suggested fix: Discard redundant terms from the logical expression.
  
    2 │ const·r·=·true·&&·boolExp;
            --------        
const boolExp2 = true;
const r2 = boolExp || true;
complexity/useSimplifiedLogicExpression.js:2:12 lint/complexity/useSimplifiedLogicExpression  FIXABLE  ━━━━━━━━━━

   Logical expression contains unnecessary complexity.
  
    1 │ const boolExp2 = true;
  > 2 │ const r2 = boolExp || true;
              ^^^^^^^^^^^^^^^
    3 │ 
  
   Suggested fix: Discard redundant terms from the logical expression.
  
    2 │ const·r2·=·boolExp·||·true;
             -----------     
const nonNullExp = 123;
const r3 = null ?? nonNullExp;
complexity/useSimplifiedLogicExpression.js:2:12 lint/complexity/useSimplifiedLogicExpression  FIXABLE  ━━━━━━━━━━

   Logical expression contains unnecessary complexity.
  
    1 │ const nonNullExp = 123;
  > 2 │ const r3 = null ?? nonNullExp;
              ^^^^^^^^^^^^^^^^^^
    3 │ 
  
   Suggested fix: Discard redundant terms from the logical expression.
  
    2 │ const·r3·=·null·??·nonNullExp;
             --------           
const boolExpr1 = true;
const boolExpr2 = false;
const r4 = !boolExpr1 || !boolExpr2;
complexity/useSimplifiedLogicExpression.js:3:12 lint/complexity/useSimplifiedLogicExpression  FIXABLE  ━━━━━━━━━━

   Logical expression contains unnecessary complexity.
  
    1 │ const boolExpr1 = true;
    2 │ const boolExpr2 = false;
  > 3 │ const r4 = !boolExpr1 || !boolExpr2;
              ^^^^^^^^^^^^^^^^^^^^^^^^
    4 │ 
  
   Suggested fix: Reduce the complexity of the logical expression.
  
    1 1  const boolExpr1 = true;
    2 2  const boolExpr2 = false;
    3  - const·r4·=·!boolExpr1·||·!boolExpr2;
      3+ const·r4·=·!(boolExpr1·&&·boolExpr2);
    4 4  
  

Valid

const boolExpr3 = true;
const boolExpr4 = false;
const r5 = !(boolExpr1 && boolExpr2);
const boolExpr5 = true;
const boolExpr6 = false;