$ npm install @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.
npm i @putout/plugin-simplify-ternary -D
{
"rules": {
"simplify-ternary/value": "on",
"simplify-ternary/spread": "on"
}
}
Check out in 🐊Putout Editor.
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;
module.exports = fs.copyFileSync || copyFileSync;
x = y || z;
x = y && z;
m = a && is ? b : c;
No need to use ternary
when you can use logical expression (&&
) it behaves in the same way, but simpler.
Check out in 🐊Putout Editor.
const a = {
...DEV ? {
devtool: 'eval',
} : {},
};
const a = {
...DEV && {
devtool: 'eval',
},
};
Linter | Rule | Fix |
---|---|---|
🐊 Putout | simplify-ternary |
✅ |
⏣ ESLint | no-unneeded-ternary |
⚠️ (partially: no MemberExpression, SpreadElement support) |
MIT
© 2010 - cnpmjs.org x YWFE | Home | YWFE