web-dev-qa-db-ja.com

switchステートメントのcaseステートメントのインデントに関するeslintルールを修正できません

これは、switch/caseステートメントに対してスローされるeslintエラーを示す私の崇高なテキストウィンドウのスクリーンショットです。 コードが示すように、4つのスペースをインデントする必要があります

enter image description here

そして、これは4私のreactアプリの.eslintrcファイルの変更を介して、4つのスペースのインデントを許可しようとする異なる試みです。私は解決策を探して、switchCaseとindentSwitchCaseの両方を追加する提案を見つけましたが、私の.eslintrcルールはすべてキャメルケースではなくスペースですので、崇高なテキストからエラーを削除するために4つのルールをすべて追加しましたが、運はありません...私は何を間違っていますか?!?!

enter image description here

編集:これはReact/MERNアプリであり、エディターとして崇高なテキストを使用しています。eslintrcファイルから何か他のものを共有できるかどうか教えてください!

編集2:私はこれを試してみました:

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

...しかし、これはインデントには無効なルールです。 エラーを発生させずにオプションオブジェクトをインデントルールに追加するにはどうすればよいですか?

14
Canovice

あなたがあなたの答えを編集( "EDIT 2")したのを見ました。

とにかく、私はあなたにそのオプションを正確にアドバイスしたかった:

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

indentの無効なルール」と考えるのはなぜですか?

docs によれば、switchステートメントに必要なインデントを設定する正しい方法です。

「SwitchCase」(デフォルト:0)は、switchステートメントのcase句にインデントレベルを適用します。

ドキュメントには[4つの例]もあります。

  • SwitchCaseが0に設定された2つのスペースのインデントは、switchステートメントに関してcase節をインデントしません。
  • SwitchCaseを1に設定して2つのスペースをインデントすると、switchステートメントに関して2つのスペースを持つcase句がインデントされます。
  • SwitchCaseを2に設定して2つのスペースをインデントすると、switchステートメントに関して4つのスペースを持つcase句がインデントされます。
  • SwitchCaseを2に設定したタブのインデントは、switchステートメントに関して2つのタブを持つcase句をインデントします。

これらは単なる例であり、ターゲットオプションオブジェクトがリストされていないという事実は、それが正しくないという意味ではありません。そして実際、それは正しいようです: ESLint Demo

あなたのユースケースは、実際には バージョン2.0.0のドキュメント に含まれています(直接リンクするアンカーはありません。申し訳ありませんが、ドキュメントの最後のコードブロックです)。

/*eslint indent: [2, 4, {"SwitchCase": 1}]*/

switch(a){
    case "a":
        break;
    case "b":
        break;
}
20
David