ESLint

switct-case 文でインデントした時に ESLint の警告を受けないように

More than 1 year has passed since last update.


問題

こんな感じに書きたい。ただ、これはデフォルトのままだとindentルールに引っかかります。

switch (1) {

case 1: {...}
case 2: {...}
default: {...}
}

こうしろと言ってくるんです。

switch (1) {

case 1: {...}
case 2: {...}
default: {...}
}


解決

どうしても上で書きたい場合は、indentルールのオプションの{SwitchCase: <ネストの深さ>を指定します。なんとデフォルトが{SwitchCase: 0}だった為に警告されたわけです。

つまり、.tslintrcをこんな感じにすれば上の方法で書けるようになります。

"rules": {

"indent": ["error", 2, {"SwitchCase": 1}],
}


eslint-config-prettier と eslint-plugin-prettier を使ってる場合

もし、prettier/prettierルールを使っている場合でネストをのまま使っていると、


  • Insert '··' (prettier/prettier)

  • Replace '······' with '········' (prettier/prettier)

こんな感じの意味不明なエラー文に怒られてハマります。

これはswitch-case文のインデントを1にすれば直ります😇