簡體   English   中英

無法修復 switch 語句中縮進 case 語句的 eslint 規則

[英]Cannot fix eslint rule on indenting case statements in switch statement

這是我的 sublime text window 的屏幕截圖,顯示了為 switch / case 語句拋出的 eslint 錯誤。 如代碼所示,我想縮進 4 個空格。

在此處輸入圖像描述

這里有4種不同的嘗試,試圖通過修改我的 React 應用程序中的 .eslintrc 文件來允許縮進 4 個空格。 我在谷歌上搜索了一個解決方案並看到了添加 switchCase 和 indentSwitchCase 的建議,但是 my.eslintrc 規則都是 - 間隔的,而不是駝峰式,所以我添加了所有 4 條規則以努力從 sublime text 中刪除錯誤但沒有運氣......我究竟做錯了什么???!

在此處輸入圖像描述

編輯:這是一個 React / MERN 應用程序,我使用 sublime text 作為我的編輯器。 如果我可以分享 my.eslintrc 文件中的任何其他內容來幫助我,請告訴我!

編輯 2:我試過這個:

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

...但這是一個無效的縮進規則。 如何在不出現錯誤的情況下向縮進規則添加選項 object?

我剛剛看到你對你的答案進行了編輯(“編輯2”)。

無論如何,我想建議你這個選項:

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

為什么你認為它是“ 縮進的無效規則 ”?

根據文檔 ,這是為switch語句設置所需縮進的正確方法。

“SwitchCase”(默認值:0)對switch語句中的case子句強制執行縮進級別。

文檔還提供了[四個例子]:

  • 如果SwitchCase設置為0,則縮進2個空格將不會縮進與switch語句相關的case子句。
  • 將SwitchCase設置為1的2個空格的縮進將使用switch語句縮進2個空格的case子句。
  • 如果SwitchCase設置為2,則縮進2個空格將使用switch語句縮進4個空格的case子句。
  • 將SwitchCase設置為2的制表符縮進將縮進case子句,其中包含2個與switch語句相關的制表符。

它們只是示例,未列出目標選項對象的事實並不意味着它不正確。 事實上它似乎是正確的: ESLint Demo

您的用例實際上包含在2.0.0版本文檔中 (沒有錨點直接鏈接,抱歉,它是文檔的最后一個代碼塊):

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

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

在 typescript 代碼庫中,使用TypeScript ESLint@typescript-eslint/indent可以解決問題。

{
  // note you must disable the base rule as it can report incorrect errors
  "indent": "off",
  "@typescript-eslint/indent": ["error"]
}

在以下示例中, ESLintindent規則導致 typescript 文件中出現錯誤。

switch 語句中的 ESLint 縮進規則錯誤 - 預期縮進 4 個空格但發現 6 個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM