6

我正在通过JSHint运行我的代码,我遇到了这个错误:

期待break之前的声明case

在这个代码块上:

switch(true)
{
    // Renames skill1=abc to section_8_1_body=abc
    case Major === 0 && Minor === 0 && Patch < 433:
        upgraded = upgraded.replace(/(\s+)skill(\d)=/gm, '$1section_8_$2_body=');
    /*falls through*/

    // Example
    case Major === 0 && Minor === 0 && Patch < 442:
        console.log('test');
    /*falls through*/
}

该代码检查文件的版本信息,并将其升级为与最新版本的软件兼容。因此,故意让cases 失败,以便可以通过多个版本升级文件。

但是,我仍然收到错误消息, /*falls through*添加,即使它应该是有效的。

如何让我case的 s 在 JSHint 中成功失败?

4

1 回答 1

17

JSHint 似乎希望注释在case.

// Example
/* falls through */
case Major === 0 && Minor === 0 && Patch < 442:
    console.log('test');

根据源代码中的描述,否则它不会承认评论:

// You can tell JSHint that you don't use break intentionally by
// adding a comment /* falls through */ on a line just before
// the next `case`.
于 2013-09-25T21:53:56.150 回答