Skip to content
← Back to rules

eslint/max-nested-callbacks 細部にこだわる

何をしますか

コールバックのネスト深さに最大値を設定します。このルールは、コールバックのネストの複雑さを制限し、コールバックが極端に深くネストされすぎることを防ぎ、コードの可読性と保守性を高めます。

なぜ悪いですか

多くの JavaScript ライブラリでは、非同期処理を管理するためにコールバックパターンを使用しています。ある程度の複雑さを持つプログラムでは、さまざまな並行レベルで複数の非同期処理を管理する必要があるでしょう。よくある落とし穴として、コールバックを過度にネストしてしまうことがあり、その結果、コードが読みにくくなり、理解しづらくなります。

{ "max": 3 } オプションを使用した場合の誤りなコード例:

js
foo1(function () {
  foo2(function () {
    foo3(function () {
      foo4(function () {
        // ...
      });
    });
  });
});

{ "max": 3 } オプションを使用した場合の正しいコード例:

js
foo1(handleFoo1);

function handleFoo1() {
  foo2(handleFoo2);
}

function handleFoo2() {
  foo3(handleFoo3);
}

function handleFoo3() {
  foo4(handleFoo4);
}

function handleFoo4() {
  foo5();
}

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます:

max

type: integer

default: 10

max は、コールバックのネスト深度に上限を設けるための設定です。

使い方

設定ファイルまたは CLI でこのルールを有効化するには、次のようにします:

json
{
  "rules": {
    "max-nested-callbacks": "error"
  }
}
bash
oxlint --deny max-nested-callbacks

参照