eslint/max-depth 严格检查
它的作用
强制限制代码块的最大嵌套深度。此规则有助于控制嵌套块的复杂性,通过确保代码不会过度嵌套,从而提高代码的可读性和可维护性。
为什么这是个问题?
许多开发者认为,当代码块嵌套超过一定深度时,代码会变得难以阅读。过度嵌套会使代码的执行流程更难追踪,增加认知负担,并使维护更容易出错。通过强制设定最大嵌套深度,该规则鼓励编写更清晰、更易读的代码。
示例
使用默认配置 { "max": 3 } 时,以下为 不正确 的代码示例:
js
function foo() {
for (;;) { // 嵌套深度 1
while (true) { // 嵌套深度 2
if (true) { // 嵌套深度 3
if (true) { // 嵌套深度 4 }
}
}
}
}使用默认配置 { "max": 3 } 时,以下为 正确 的代码示例:
js
function foo() {
for (;;) { // 嵌套深度 1
while (true) { // 嵌套深度 2
if (true) { // 嵌套深度 3 }
}
}
}请注意,类的静态块不算作嵌套块,且它们的嵌套深度是独立于其外部上下文计算的。
示例:
js
function foo() {
if (true) { // 嵌套深度 1
class C {
static {
if (true) { // 嵌套深度 1
if (true) { // 嵌套深度 2 }
}
}
}
}
}配置
此规则接受一个配置对象,包含以下属性:
max
type: integer
default: 4
max 用于强制设定代码块的最大嵌套深度。
如何使用
要通过配置文件或 CLI 启用 此规则,可以使用:
json
{
"rules": {
"max-depth": "error"
}
}bash
oxlint --deny max-depth