Skip to content
← Back to rules

eslint/max-depth Pedantic

作用

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

为什么不好?

许多开发者认为,如果块嵌套超过一定深度,代码将难以阅读。过多的嵌套会使跟踪代码流程变得更加困难,增加认知负荷,并使维护更容易出错。通过强制限制最大块深度,此规则鼓励更清晰、更易读的代码。

示例

此规则在默认 { "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

类型:integer

默认值:4

max 强制限制块可以嵌套的最大深度

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "max-depth": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "max-depth": "error",
  },
});
bash
oxlint --deny max-depth

版本

此规则添加于 v0.15.12。

参考资料