Skip to content
You are currently reading docs for v1.x. Go to the latest docs if you are using newer version.

noExtraBooleanCast

Diagnostic Category: lint/complexity/noExtraBooleanCast

Since: v1.0.0

Sources:

Disallow unnecessary boolean casts

if (!Boolean(foo)) {
}
code-block.js:1:6 lint/complexity/noExtraBooleanCast  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ Avoid redundant Boolean call

> 1 │ if (!Boolean(foo)) {
│ ^^^^^^^^^^^^
2 │ }
3 │

ℹ It is not necessary to use Boolean call when a value will already be coerced to a boolean.

ℹ Unsafe fix: Remove redundant Boolean call

1 │ if·(!Boolean(foo))·{
│ -------- -
while (!!foo) {}
code-block.js:1:8 lint/complexity/noExtraBooleanCast  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ Avoid redundant double-negation.

> 1 │ while (!!foo) {}
│ ^^^^^
2 │

ℹ It is not necessary to use double-negation when a value will already be coerced to a boolean.

ℹ Unsafe fix: Remove redundant double-negation

1 │ while·(!!foo)·{}
│ --
let x = 1;
do {
1 + 1;
} while (Boolean(x));
code-block.js:4:10 lint/complexity/noExtraBooleanCast  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ Avoid redundant Boolean call

2 │ do {
3 │ 1 + 1;
> 4 │ } while (Boolean(x));
│ ^^^^^^^^^^
5 │

ℹ It is not necessary to use Boolean call when a value will already be coerced to a boolean.

ℹ Unsafe fix: Remove redundant Boolean call

4 │ }·while·(Boolean(x));
│ -------- -
for (; !!foo; ) {}
code-block.js:1:8 lint/complexity/noExtraBooleanCast  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ Avoid redundant double-negation.

> 1 │ for (; !!foo; ) {}
│ ^^^^^
2 │

ℹ It is not necessary to use double-negation when a value will already be coerced to a boolean.

ℹ Unsafe fix: Remove redundant double-negation

1 │ for·(;·!!foo;·)·{}
│ --
new Boolean(!!x);
code-block.js:1:13 lint/complexity/noExtraBooleanCast  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ Avoid redundant double-negation.

> 1 │ new Boolean(!!x);
│ ^^^
2 │

ℹ It is not necessary to use double-negation when a value will already be coerced to a boolean.

ℹ Unsafe fix: Remove redundant double-negation

1 │ new·Boolean(!!x);
│ --
Boolean(!x);
!x;
!!x;
biome.json
{
"linter": {
"rules": {
"complexity": {
"noExtraBooleanCast": "error"
}
}
}
}