73

这是我的崇高文本窗口的屏幕截图,显示了为 switch / case 语句引发的 eslint 错误。如代码所示,我想缩进 4 个空格。

在此处输入图像描述

这里有4种不同的尝试,通过在我的 react 应用程序中修改 .eslintrc 文件来尝试允许缩进 4 个空格。我搜索了一个解决方案,并看到了添加 switchCase 和 indentSwitchCase 的建议,但是我的 .eslintrc 规则都是间隔的,而不是驼峰式,所以我添加了所有 4 条规则,以努力从崇高的文本中删除错误,但没有运气......我究竟做错了什么 ?!?!

在此处输入图像描述

编辑:这是一个 React / MERN 应用程序,我使用 sublime text 作为我的编辑器。让我知道我是否可以从我的 .eslintrc 文件中分享任何其他内容以提供帮助!

编辑2:我试过这个:

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

...但这是一个无效的缩进规则。如何在不出错的情况下将选项对象添加到缩进规则?

4

1 回答 1

127

我刚刚看到您对答案进行了编辑(“EDIT 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 的制表符缩进将相对于 switch 语句缩进具有 2 个制表符的 case 子句。

它们只是示例,您的目标选项对象未列出这一事实并不意味着它不正确。确实它似乎是正确的:ESLint Demo

您的用例实际上包含在2.0.0 版本的文档中(没有直接链接的锚,抱歉,它是文档的最后一个代码块):

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

switch(a){
    case "a":
        break;
    case "b":
        break;
}
于 2018-10-30T00:04:58.630 回答