@putout/plugin-simplify-ternary v7.0.0
@putout/plugin-simplify-ternary
The ternary operator takes three operands: a condition followed by a question mark (
?
), then an expression to execute if the condition is truthy followed by a colon (:
), and finally the expression to execute if the condition is falsy. This operator is frequently used as an alternative to anif...else
statement.(c) MDN
πPutout plugin adds ability to simplify ternary to logical expression when first and second operands are the same.
Install
npm i @putout/plugin-simplify-ternary -D
Rule
{
"rules": {
"simplify-ternary/value": "on",
"simplify-ternary/spread": "on"
}
}
value
Check out in πPutout Editor.
β Example of incorrect code
module.exports = fs.copyFileSync ? fs.copyFileSync : copyFileSync;
x = y ? y : z;
x = y ? z : y;
x = y ? z : false;
m = is ? a && b : a && c;
β Example of correct code
module.exports = fs.copyFileSync || copyFileSync;
x = y || z;
x = y && z;
m = a && is ? b : c;
spread
No need to use ternary
when you can use logical expression (&&
) it behaves in the same way, but simpler.
Check out in πPutout Editor.
β Example of incorrect code
const a = {
...DEV ? {
devtool: 'eval',
} : {},
};
β Example of correct code
const a = {
...DEV && {
devtool: 'eval',
},
};
Comparison
Linter | Rule | Fix |
---|---|---|
π Putout | simplify-ternary | β |
β£ ESLint | no-unneeded-ternary | β οΈ (partially: no MemberExpression, SpreadElement support) |
License
MIT
4 months ago
10 months ago
10 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
5 years ago
5 years ago