$ cnpm install @putout/plugin-simplify-logical-expressions
The logical NOT (
!) operator takes truth to falsity and vice versa.(c) MDN
????Putout plugin adds ability to simplify logical expressions containing
comparisons which will always evaluate to true or false since it's likely indications of programmer error.
Complements @putout/plugin-apply-comparison-order.
Merged to @putout/plugin-logical-expressions.
npm i @putout/plugin-simplify-logical-expressions -D
{
"rules": {
"simplify-logical-expressions": "on"
}
}
const is = !(options && !options.bidirectional);
if (!left.type === 'UnaryExpression');
const oneOf = a || a;
const same = a === a;
const is = !options || options.bidirectional;
if (left.type !== 'UnaryExpression');
const oneOf = a;
const same = true;
The rule also simplify duplication use:
-if (a && b || a && c) {
+if (a && (b || c)) {
}
Wrong cases with instanceof:
-!a instanceof b;
-a instanceof !b;
-!a instanceof !b;
+!(a instanceof b);
Wrong cases with in:
-!a in b;
-a in !b;
+!(a in b);
In case of duplicates:
-a && b && a
+a && b
| Linter | Rule | Fix |
|---|---|---|
| ???? Putout | simplify-logical-expressions |
✅ |
| ⏣ ESLint | no-constant-binary-expression |
❌ |
MIT
Copyright 2013 - present © cnpmjs.org | Home |