版本

default-case

switch 語句中要求 default case

有些程式碼慣例要求所有 switch 語句都必須有 default case,即使 default case 是空的,例如

switch (foo) {
    case 1:
        doSomething();
        break;

    case 2:
        doSomething();
        break;

    default:
    // do nothing
}

想法是最好總是明確地說明預設行為應該是什麼,以便清楚地知道開發人員是否不小心忘記包含預設行為。

其他程式碼慣例允許您跳過 default case,只要有註解表明省略是有意的,例如

switch (foo) {
    case 1:
        doSomething();
        break;

    case 2:
        doSomething();
        break;

    // no default
}

再一次,這裡的意圖是要表明開發人員有意不使用預設行為。

規則詳細資訊

此規則旨在要求 switch 語句中必須要有 default case。如果沒有 default case,您可以選擇性地在最後一個 case 後面加上 // no default。註解可以使用任何想要的大小寫,例如 // No Default

此規則的 錯誤 程式碼範例

在 Playground 中開啟
/*eslint default-case: "error"*/

switch (a) {
    case 1:
        /* code */
        break;
}

此規則的 正確 程式碼範例

在 Playground 中開啟
/*eslint default-case: "error"*/

switch (a) {
    case 1:
        /* code */
        break;

    default:
        /* code */
        break;
}

switch (a) {
    case 1:
        /* code */
        break;

    // no default
}

switch (a) {
    case 1:
        /* code */
        break;

    // No Default
}

選項

此規則接受單一選項參數

  • commentPattern 選項設定為正規表示式字串,以變更預設的 /^no default$/i 註解測試模式

commentPattern

針對 { "commentPattern": "^skip\\sdefault" } 選項的 正確 程式碼範例

在 Playground 中開啟
/*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/

switch(a) {
    case 1:
        /* code */
        break;

    // skip default
}

switch(a) {
    case 1:
        /* code */
        break;

    // skip default case
}

何時不應使用

如果您不想對 switch 語句強制執行 default case,您可以安全地停用此規則。

版本

此規則在 ESLint v0.6.0 中引入。

資源

變更語言