Skip to content

useCollapsedElseIf (JavaScript)

Language JavaScript (and super languages)
biome.json
{
"linter": {
"rules": {
"style": {
"useCollapsedElseIf": "error"
}
}
}
}

Enforce using else if instead of nested if in else clauses.

If an if statement is the only statement in the else block, it is often clearer to use an else if form.

if (condition) {
// ...
} else {
if (anotherCondition) {
// ...
}
}
code-block.js:3:9 lint/style/useCollapsedElseIf  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ℹ This if statement can be collapsed into an else if statement.

1 │ if (condition) {
2 │ // ...
> 3 │ } else {
│
> 4 │ if (anotherCondition) {
> 5 │ // ...
> 6 │ }
│ ^
7 │ }
8 │

ℹ An else block that only contains an if statement adds a level of nesting without need.

ℹ Safe fix: Use collapsed else if instead.

1 1 │ if (condition) {
2 2 │ // ...
3 │ - }·else·{
4 │ - ····if·(anotherCondition)·{
3 │ + }·else·if·(anotherCondition)·{
5 4 │ // ...
6 │ - ····}
7 │ - }
5 │ + ····}
8 6 │

if (condition) {
// ...
} else {
if (anotherCondition) {
// ...
} else {
// ...
}
}
code-block.js:3:9 lint/style/useCollapsedElseIf  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ℹ This if statement can be collapsed into an else if statement.

1 │ if (condition) {
2 │ // ...
> 3 │ } else {
│
> 4 │ if (anotherCondition) {
> 5 │ // ...
> 6 │ } else {
> 7 │ // ...
> 8 │ }
│ ^
9 │ }
10 │

ℹ An else block that only contains an if statement adds a level of nesting without need.

ℹ Safe fix: Use collapsed else if instead.

1 1 │ if (condition) {
2 2 │ // ...
3 │ - }·else·{
4 │ - ····if·(anotherCondition)·{
3 │ + }·else·if·(anotherCondition)·{
5 4 │ // ...
6 5 │ } else {
7 6 │ // ...
8 │ - ····}
9 │ - }
7 │ + ····}
10 8 │

if (condition) {
// ...
} else {
// Comment
if (anotherCondition) {
// ...
}
}
code-block.js:3:9 lint/style/useCollapsedElseIf ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ℹ This if statement can be collapsed into an else if statement.

1 │ if (condition) {
2 │ // ...
> 3 │ } else {
│
> 4 │ // Comment
> 5 │ if (anotherCondition) {
> 6 │ // ...
> 7 │ }
│ ^
8 │ }
9 │

ℹ An else block that only contains an if statement adds a level of nesting without need.

if (condition) {
// ...
} else if (anotherCondition) {
// ...
}
if (condition) {
// ...
} else if (anotherCondition) {
// ...
} else {
// ...
}
if (condition) {
// ...
} else {
if (anotherCondition) {
// ...
}
doSomething();
}