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;``````