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
Примеры неправильного кода для этого правила:
/*eslint no-else-return: "error"*/
function foo1() {
if (x) {
return y;
} else
}
function foo2() {
if (x) {
return y;
} else if (z) {
return w;
} else
}
function foo3() {
if (x) {
return y;
} else
return t;
}
function foo4() {
if (error) {
return 'It failed';
} else
}
// Two warnings for nested occurrences
function foo5() {
if (x) {
if (y) {
return y;
} else
} else
}
Примеры правильного кода для этого правила:
/*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
Примеры неправильного кода для этого правила:
/*eslint no-else-return: ["error", {allowElseIf: false}]*/
function foo() {
if (error) {
return 'It failed';
} else
}
Примеры правильного кода для этого правила:
/*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