Spec-Zone.ru › ESLint

no-else-return

Запретить else блоки после return операторов в if операторах

🔧 Исправимый

Некоторые проблемы, выявленные этим правилом, автоматически исправляются с помощью параметра --fix командной строки

Если блок if содержит return оператор, то блок else становится ненужным. Его содержимое можно поместить за пределами блока.

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

Подробное описание правила

Это правило призвано выявлять ненужный блок кода, следующий за if, содержащим оператор return. Таким образом, оно будет выдавать предупреждение при обнаружении else после цепочки if, все из которых содержат оператор return.

Параметры

Это правило имеет параметр типа объект:

  • allowElseIf: true (по умолчанию) разрешает else if блоки после return
  • allowElseIf: false запрещает else if блоки после return

allowElseIf: true

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint no-else-return: "error"*/

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

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

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

    return t;
}

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

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

Примеры правильного кода для этого правила:

Открыть в Playground
/*eslint no-else-return: "error"*/

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

    return z;
}

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

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

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

allowElseIf: false

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint no-else-return: ["error", {allowElseIf: false}]*/

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

Примеры правильного кода для этого правила:

Открыть в Playground
/*eslint no-else-return: ["error", {allowElseIf: false}]*/

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

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

Версия

Это правило было добавлено в ESLint v0.0.9.

Ссылки

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-else-return

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API