# no-extra-boolean-cast
Disallow unnecessary boolean casts.
In contexts where expression will be coerced to a Boolean
(e.g. if
),
casting to a boolean (using !!
or Boolean(expr)
) is unnecessary.
# Invalid Code Examples
if (!!foo) {}
while (!!foo) {}
var foo = !!!bar;
var foo = Boolean(!!bar);
# Config
Name | Type | Description |
---|---|---|
enforceForLogicalOperands | bool | If this option is true , this rule will also check for unnecessary booleancast inside logical expression, which is disabled by default. |
More incorrect examples
if (!!foo) {}
do {} while (!!foo)
while (!!foo) {}
!!foo ? bar : baz
for (; !!foo;) {}
!!!foo
Boolean(!!foo)
new Boolean(!!foo)
if (Boolean(foo)) {}
do {} while (Boolean(foo))
while (Boolean(foo)) {}
Boolean(foo) ? bar : baz
for (; Boolean(foo);) {}
!Boolean(foo)
!Boolean(foo && bar)
!Boolean(foo + bar)
!Boolean(+foo)
!Boolean(foo())
!Boolean(foo = bar)
!Boolean(...foo);
!Boolean(foo, bar());
!Boolean((foo, bar()));
!Boolean();
!(Boolean());
if (!Boolean()) { foo() }
while (!Boolean()) { foo() }
if (Boolean()) { foo() }
while (Boolean()) { foo() }
Boolean(Boolean(foo))
Boolean(!!foo, bar)
More correct examples
Boolean(bar, !!baz);
var foo = !!bar;
function foo() { return !!bar; }
var foo = bar() ? !!baz : !!bat
for(!!foo;;) {}
for(;; !!foo) {}
var foo = Boolean(bar);
function foo() { return Boolean(bar); }
var foo = bar() ? Boolean(baz) : Boolean(bat)
for(Boolean(foo);;) {}
for(;; Boolean(foo)) {}
if (new Boolean(foo)) {}