无法修复 switch 语句中缩进 case 语句的 eslint 规则
Cannot fix eslint rule on indenting case statements in switch statement
这是我的 sublime text window 的屏幕截图,显示了针对 switch / case 语句抛出的 eslint 错误。 我希望 必须缩进 4 个空格,如代码所示。
这里是 4 不同的尝试,试图通过修改我的 React 应用程序中的 .eslintrc 文件来允许缩进 4 个空格。我在谷歌上搜索了一个解决方案,看到了添加 switchCase 和 indentSwitchCase 的建议,但我的 .eslintrc 规则都是 - 间隔的,而不是驼峰式,所以我添加了所有 4 条规则以努力从 sublime 文本中删除错误但没有运气......我做错了什么?!?!
编辑:这是一个 React / MERN 应用程序,我使用 sublime text 作为我的编辑器。让我知道我是否可以分享我的 .eslintrc 文件中的任何其他内容以提供帮助!
编辑 2:我试过这个:
"indent": ["error", 4, {SwitchCase: 1}]
...但这是无效的缩进规则。 如何在不出现错误的情况下将选项对象添加到缩进规则?
我刚刚看到您对答案进行了编辑 ("EDIT 2")。
无论如何,我想准确地告诉你这个选项:
"indent": ["error", 4, { "SwitchCase": 1 }]
您为什么认为它是“无效的缩进规则”?
根据 docs,这是为 switch
语句设置所需缩进的正确方法。
"SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements.
文档还提供了[四个示例]:
- Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
- Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
- Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
- Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
它们只是示例,未列出您的目标选项对象并不意味着它不正确。事实上它似乎是正确的:ESLint Demo.
您的用例实际上包含在 docs of the version 2.0.0 中(没有直接指向 link 的锚点,抱歉,它是文档的最后一个代码块):
/*eslint indent: [2, 4, {"SwitchCase": 1}]*/
switch(a){
case "a":
break;
case "b":
break;
}
在打字稿code-base中,使用TypeScript ESLint's @typescript-eslint/indent
可以解决问题。
{
// note you must disable the base rule as it can report incorrect errors
"indent": "off",
"@typescript-eslint/indent": ["error"]
}
在以下示例中,ESLint's indent
规则导致打字稿文件中出现错误。
这是我的 sublime text window 的屏幕截图,显示了针对 switch / case 语句抛出的 eslint 错误。 我希望 必须缩进 4 个空格,如代码所示。
这里是 4 不同的尝试,试图通过修改我的 React 应用程序中的 .eslintrc 文件来允许缩进 4 个空格。我在谷歌上搜索了一个解决方案,看到了添加 switchCase 和 indentSwitchCase 的建议,但我的 .eslintrc 规则都是 - 间隔的,而不是驼峰式,所以我添加了所有 4 条规则以努力从 sublime 文本中删除错误但没有运气......我做错了什么?!?!
编辑:这是一个 React / MERN 应用程序,我使用 sublime text 作为我的编辑器。让我知道我是否可以分享我的 .eslintrc 文件中的任何其他内容以提供帮助!
编辑 2:我试过这个:
"indent": ["error", 4, {SwitchCase: 1}]
...但这是无效的缩进规则。 如何在不出现错误的情况下将选项对象添加到缩进规则?
我刚刚看到您对答案进行了编辑 ("EDIT 2")。
无论如何,我想准确地告诉你这个选项:
"indent": ["error", 4, { "SwitchCase": 1 }]
您为什么认为它是“无效的缩进规则”?
根据 docs,这是为 switch
语句设置所需缩进的正确方法。
"SwitchCase" (default: 0) enforces indentation level for case clauses in switch statements.
文档还提供了[四个示例]:
- Indent of 2 spaces with SwitchCase set to 0 will not indent case clauses with respect to switch statements.
- Indent of 2 spaces with SwitchCase set to 1 will indent case clauses with 2 spaces with respect to switch statements.
- Indent of 2 spaces with SwitchCase set to 2 will indent case clauses with 4 spaces with respect to switch statements.
- Indent of tab with SwitchCase set to 2 will indent case clauses with 2 tabs with respect to switch statements.
它们只是示例,未列出您的目标选项对象并不意味着它不正确。事实上它似乎是正确的:ESLint Demo.
您的用例实际上包含在 docs of the version 2.0.0 中(没有直接指向 link 的锚点,抱歉,它是文档的最后一个代码块):
/*eslint indent: [2, 4, {"SwitchCase": 1}]*/
switch(a){
case "a":
break;
case "b":
break;
}
在打字稿code-base中,使用TypeScript ESLint's @typescript-eslint/indent
可以解决问题。
{
// note you must disable the base rule as it can report incorrect errors
"indent": "off",
"@typescript-eslint/indent": ["error"]
}
在以下示例中,ESLint's indent
规则导致打字稿文件中出现错误。