no-else-return

if 语句中的 return 语句之后禁止 else

一些该规则报告的问题可以通过 --fix 命令行选项 自动修复

如果 if 块包含 return 语句,则 else 块变得不必要。它的内容可以放在块之外。

function foo() {
    if (x) {
        return y;
    } else {
        return z;
    }
}

规则详情

此规则旨在突出显示包含 return 语句的 if 之后的不必要的代码块。因此,它会在遇到 if 链后的 else 时发出警告,所有这些 if 都包含 return 语句。

选项

此规则有一个对象选项:

    sTjG+M4iz887TkQ1A/3dYcpi43/Aw8XZGqqzt3k/23CPp6kE4kdOs/7W2jXHjoJSMCWI4K+hYC0aua+n9bZBS/5PzaHP9VNlOnSwyFyn4EER3nB50d/Bbd9eUimOE79/3vhI7gzdt3b1e9xjpjC1/dNHL6Eq3zYcX6n00Uxshoinv09xkOp8Cgq3AKzaSNf5AbMRTGFfbfW+meQd0gIvCJrtzPgN4PORZtMpVSh/gXW6uVJhSx2lv9E/BRq3W1Zu

allowElseIf: true

Wk+Mu7oFIccqpNSe5orR05ZG/BDV40hHIKzF0SoJnVcuS8r6evQjx3oyoFn9+fZT

/*eslint no-else-return: "error"*/

function foo() {
    if (x) {
        return y;
    } else {
        return z;
    }
}

function foo() {
    if (x) {
        return y;
    } else if (z) {
        return w;
    } else {
        return t;
    }
}

function foo() {
    if (x) {
        return y;
    } else {
        var t = "foo";
    }

    return t;
}

function foo() {
    if (error) {
        return 'It failed';
    } else {
        if (loading) {
            return "It's still loading";
        }
    }
}

// Two warnings for nested occurrences
function foo() {
    if (x) {
        if (y) {
            return y;
        } else {
            return x;
        }
    } else {
        return z;
    }
}

UubGaThNGVSAZCEeqgdAAx/QE1uwW/De5ytjPBnKCKqeOsDZpJS0MvQSJQtY0WPI

/*eslint no-else-return: "error"*/

function foo() {
    if (x) {
        return y;
    }

    return z;
}

function foo() {
    if (x) {
        return y;
    } else if (z) {
        var t = "foo";
    } else {
        return w;
    }
}

function foo() {
    if (x) {
        if (z) {
            return y;
        }
    } else {
        return z;
    }
}

function foo() {
    if (error) {
        return 'It failed';
    } else if (loading) {
        return "It's still loading";
    }
}

allowElseIf: false

Wk+Mu7oFIccqpNSe5orR05ZG/BDV40hHIKzF0SoJnVcuS8r6evQjx3oyoFn9+fZT

/*eslint no-else-return: ["error", {allowElseIf: false}]*/

function foo() {
    if (error) {
        return 'It failed';
    } else if (loading) {
        return "It's still loading";
    }
}

UubGaThNGVSAZCEeqgdAAx/QE1uwW/De5ytjPBnKCKqeOsDZpJS0MvQSJQtY0WPI

/*eslint no-else-return: ["error", {allowElseIf: false}]*/

function foo() {
    if (error) {
        return 'It failed';
    }

    if (loading) {
        return "It's still loading";
    }
}