@putout/plugin-remove-useless-type-conversion
It is possible to use a couple of NOT operators (
!!
) in series to explicitly force the conversion of any value to the corresponding boolean primitive. The conversion is based on the "truthyness" or "falsyness" of the value.The same conversion can be done through the
Boolean
function.(c) MDN
@putout/plugin-types
.
Install
npm i @putout/plugin-remove-useless-type-conversion
Rule
{
"rules": {
"remove-useless-type-conversion/named": "on",
"remove-useless-type-conversion/with-double-negations": "on"
}
}
named
❌ Example of incorrect code
const a = !![1].includes(1);
const b = Boolean([1].includes(1));
✅ Example of correct code
const a = [1].includes(1);
with-double-negations
❌ Example of incorrect code
if (!!a) {
console.log('hi');
}
✅ Example of correct code
if (a) {
console.log('hi');
}
Comparison
Linter | Rule | Fix |
---|---|---|
remove-useless-type-conversion |
||
⏣ ESLint | no-implicit-coercion |
License
MIT