版本

default-case

switch 語句中要求 default 情況

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

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

    case 2:
        doSomething();
        break;

    default:
    // do nothing
}

這樣的想法是,最好總是明確說明預設行為應該是什麼,以便清楚開發人員是否忘記包含預設行為而犯錯。

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

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

    case 2:
        doSomething();
        break;

    // no default
}

再次強調,這裡的目的是表明開發人員有意不設定預設行為。

規則詳細資訊

此規則旨在要求在 switch 語句中加入 default 情況。 如果沒有 default 情況,您可以選擇在最後一個 case 之後加入 // no default。 註解可以是任何想要的大小寫,例如 // No Default

此規則的不正確程式碼範例

在遊樂場中開啟
/*eslint default-case: "error"*/

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

此規則的正確程式碼範例

在遊樂場中開啟
/*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" } 選項的正確程式碼範例

在遊樂場中開啟
/*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 情況,您可以安全地停用此規則。

版本

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

資源

變更語言