eslint/no-else-return 严格
它的作用
禁止在 if 语句中,return 语句之后出现 else 块
为什么这是不好的?
如果一个 if 块包含 return 语句,那么其后的 else 块就变得多余了。该块中的内容可以直接放在块外。
javascript
function foo() {
if (x) {
return y;
} else {
return z;
}
}此规则旨在指出紧跟在含有 return 语句的 if 之后的冗余代码块。因此,当检测到一系列 if 语句链后跟一个 else 时,该规则会发出警告,这些 if 语句均包含 return 语句。
示例
allowElseIf: true
此规则的 错误 代码示例:
javascript
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";
}
}
}
// 嵌套情况将产生两个警告
function foo5() {
if (x) {
if (y) {
return y;
} else {
return x;
}
} else {
return z;
}
}此规则的 正确 代码示例:
javascript
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
type: boolean
default: true
是否允许在 return 语句之后使用 else if 块。
当 allowElseIf: false 时,此规则的 错误 代码示例:
javascript
function foo() {
if (error) {
return "It failed";
} else if (loading) {
return "It's still loading";
}
}当 allowElseIf: false 时,此规则的 正确 代码示例:
javascript
function foo() {
if (error) {
return "It failed";
}
if (loading) {
return "It's still loading";
}
}如何使用
要通过配置文件或 CLI 启用 此规则,可以使用:
json
{
"rules": {
"no-else-return": "error"
}
}bash
oxlint --deny no-else-return