无法在switch语句中缩进case语句的问题上固定eslint规则

Can*_*ice 16 javascript reactjs eslint linter

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

在此处输入图片说明

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

在此处输入图片说明

编辑:这是一个React / MERN应用,即时通讯使用崇高的文字作为我的编辑器。让我知道我是否可以从我的.eslintrc文件中共享其他任何内容以帮助您!

编辑2:我尝试过:

"indent": ["error", 4, {SwitchCase: 1}]
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*vid 28

我刚刚看到您对答案进行了编辑(“ EDIT 2”)。

无论如何,我想为您提供确切的建议:

"indent": ["error", 4, { "SwitchCase": 1 }]
Run Code Online (Sandbox Code Playgroud)

为什么将其视为“ 无效的缩进规则 ”?

根据docs,这是为switch语句设置所需缩进的正确方法。

“ SwitchCase”(默认值:0)为switch语句中的case子句强制缩进级别。

该文档还提供了[四个示例]:

  • 将SwitchCase设置为0的2个空格的缩进不会使switch语句的case子句缩进。
  • 将SwitchCase设置为1的2个空格的缩进将使switch语句的case子句缩进2个空格。
  • 将SwitchCase设置为2的2个空格的缩进将相对于switch语句缩进4个空格的case子句。
  • 将SwitchCase设置为2的tab的缩进将针对switch语句缩进带有2个tab的case子句。

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

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

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

switch(a){
    case "a":
        break;
    case "b":
        break;
}
Run Code Online (Sandbox Code Playgroud)

  • 看起来抛出的错误是由于没有删除我在.eslintrc文件中其他地方放置的错误规则所致-您是正确的,现在可以正常工作了。谢谢! (3认同)

Hyu*_*bin 10

在 TypeScript 代码库中,使用TypeScript ESLint可以@typescript-eslint/indent解决该问题。

{
  // note you must disable the base rule as it can report incorrect errors
  "indent": "off",
  "@typescript-eslint/indent": ["error"]
}
Run Code Online (Sandbox Code Playgroud)

在以下示例中,ESLintindent规则导致打字稿文件中出现错误。

switch 语句中的 ESLint 缩进规则错误 - 预期缩进 4 个空格,但发现有 6 个空格