首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

default-case

一些代码约定要求所有switch语句都有一个default案例,即使默认情况下是空的,例如:

代码语言:javascript
复制
switch (foo) {
    case 1:
        doSomething();
        break;

    case 2:
        doSomething();
        break;

    default:
        // do nothing
}

我们的想法是,最好总是明确说明默认行为应该是什么,以便明确开发人员是否忘记了错误地包含默认行为。

其他代码约定允许您跳过该default案例,只要有注释表明该省略是故意的,例如:

代码语言:javascript
复制
switch (foo) {
    case 1:
        doSomething();
        break;

    case 2:
        doSomething();
        break;

    // no default
}

这里的意图再一次表明,开发者打算在那里没有默认行为。

规则细节

此规则旨在要求default的情况下,switch语句。如果没有任何default情况,您可以选择包含// no default最后一个case。评论可能在任何需要的情况下,例如。// No Default

此规则的错误代码示例:

代码语言:javascript
复制
/*eslint default-case: "error"*/

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

此规则的正确代码示例:

代码语言:javascript
复制
/*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" }

代码语言:javascript
复制
/*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案例,则可以安全地禁用此规则。

相关规则

  • no-fallthrough

版本

这条规则是在 ESLint 0.6.0 中引入的。

资源

扫码关注腾讯云开发者

领取腾讯云代金券