Back to Eslint

no-lonely-if

docs/src/rules/no-lonely-if.md

10.3.01.2 KB
Original Source

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

js
if (foo) {
    // ...
} else {
    if (bar) {
        // ...
    }
}

should be rewritten as

js
if (foo) {
    // ...
} else if (bar) {
    // ...
}

Rule Details

This rule disallows if statements as the only statement in else blocks.

Examples of incorrect code for this rule:

::: incorrect

js
/*eslint no-lonely-if: "error"*/

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

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

:::

Examples of correct code for this rule:

::: correct

js
/*eslint no-lonely-if: "error"*/

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

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

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

:::

Options

This rule has no options.

When Not To Use It

Disable this rule if the code is clearer without requiring the else if form.