Skip to content
← Back to rules

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

参照