Skip to content
← Back to rules

eslint/max-depth 严格检查

An auto-fix is available for this rule.

它的作用

强制限制代码块的最大嵌套深度。此规则有助于控制嵌套块的复杂性,通过确保代码不会过度嵌套,从而提高代码的可读性和可维护性。

为什么这是个问题?

许多开发者认为,当代码块嵌套超过一定深度时,代码会变得难以阅读。过度嵌套会使代码的执行流程更难追踪,增加认知负担,并使维护更容易出错。通过强制设定最大嵌套深度,该规则鼓励编写更清晰、更易读的代码。

示例

使用默认配置 { "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

参考资料