Switch文のインデントでESLintの警告を受けないようにする

最終更新: 2025/05/17

ogp

今回起きたこと

switch (a) {
    case 1:
        console.log("1");
        break;
    case 2:
        console.log("2");
        break;
    default:
        console.log("default");
        break;
}

こんなふうに、switch文の中でインデントをつけたい。
しかし、ESLintのルールであるindentが適用されてしまい、以下のような警告が出てしまう。

Expected indentation of 0 spaces but found 4. (eslint@/indent)

この状態でfixをかけると、インデントが消えてしまう😭

switch (a) {
case 1:
    console.log("1");
    break;
case 2:
    console.log("2");
    break;
default:
    console.log("default");
    break;
}

解決方法

ESLintのルールを変更することで解決できる。

{
    "rules": {
        "indent": [
            "error",
            4,
            {
                "SwitchCase": 1
            }
        ]
    }
}

このように、SwitchCaseのオプションを追加することで、switch文の中でインデントをつけることができるようになる。
これで、ESLintの警告も出なくなる。

参考リンク