no-unreachable
disallow unreachable code after return, throw, continue, and break statements (no-unreachable)
"extends": "eslint:recommended"
配置文件中的属性启用此规则。
因为return
,throw
,break
,和continue
语句无条件退出的代码块,之后他们的任何语句可以不被执行。无法访问的声明通常是一个错误。
function fn() {
x = 1;
return x;
x = 3; // this will never execute
}
规则细节
这条规则不允许可达代码后return
,throw
,continue
,和break
语句。
此规则的错误
代码示例:
/*eslint no-unreachable: "error"*/
function foo() {
return true;
console.log("done"
}
function bar() {
throw new Error("Oops!"
console.log("done"
}
while(value) {
break;
console.log("done"
}
throw new Error("Oops!"
console.log("done"
function baz() {
if (Math.random() < 0.5) {
return;
} else {
throw new Error(
}
console.log("done"
}
for (;;) {}
console.log("done"
由于 JavaScript 函数和变量提升,此规则的正确
代码示例如下:
/*eslint no-unreachable: "error"*/
function foo() {
return bar(
function bar() {
return 1;
}
}
function bar() {
return x;
var x;
}
switch (foo) {
case 1:
break;
var x;
}
版本
这条规则是在 ESLint 0.0.6中引入的。