no-else-return
Disallow else blocks after return statements in if statements
Some problems reported by this rule are automatically fixable by the --fix command line option
This rule is currently frozen and is not accepting feature requests.
If an if block contains a return statement, the else block becomes unnecessary. Its contents can be placed outside of the block.
function foo() { if (x) { return y; } else { return z; } } Rule Details
This rule is aimed at highlighting an unnecessary block of code following an if containing a return statement. As such, it will warn when it encounters an else following a chain of ifs, all of them containing a return statement.
Examples of incorrect code for this rule:
/*eslint no-else-return: "error"*/ function foo1() { if (x) { return y; } else } function foo2() { if (x) { return y; } else } function foo3() { if (error) { return 'It failed'; } else } // Two warnings for nested occurrences function foo4() { if (x) { if (y) { return y; } else } else } Examples of correct code for this rule:
/*eslint no-else-return: "error"*/ function foo1() { if (x) { return y; } return z; } function foo2() { if (x) { return y; } const t = "foo"; } function foo3() { if (error) { return 'It failed'; } if (loading) { return "It's still loading"; } } function foo4() { if (x) { if (y) { return y; } return x; } return z; } function foo5() { if (x) { const t = "foo"; } else { return y } } Options
allowElseIf
This rule has an object option:
allowElseIf: true(default) - If true, allowselse ifblocks after areturn
Examples of correct code for the default {"allowElseIf": true} option:
/*eslint no-else-return: ["error", {allowElseIf: true}]*/ function foo() { if (error) { return 'It failed'; } else if (loading) { return "It's still loading"; } } // Using multiple `if` statements instead of `else if` is also allowed function foo2() { if (error) { return 'It failed'; } if (loading) { return "It's still loading"; } } Examples of incorrect code for the {"allowElseIf": false} option:
/*eslint no-else-return: ["error", {allowElseIf: false}]*/ function foo() { if (error) { return 'It failed'; } else } Examples of correct code for the {"allowElseIf": false} option:
/*eslint no-else-return: ["error", {allowElseIf: false}]*/ function foo() { if (error) { return 'It failed'; } if (loading) { return "It's still loading"; } } Version
This rule was introduced in ESLint v0.0.9.