3

我正在尝试使用 StandardJS 来帮助我进行 linting(也是因为我的主管要求我这样做)。它在很大程度上工作得很好。但是,今天我开始收到以前从未见过的错误,报告说:

Closing curly brace does not appear on the same line as the subsequent block. (brace-style)
standard(brace-style)

这是导致错误的代码:

if (err.status === 'not found') {
  cb({ statusCode: 404 })
  return
}
else {  // THIS LINE causes the error
  cb({ statusCode: 500 })
  return
}

为什么我会收到此错误,我该如何预防?

注意,我在这个项目中使用 StandardJS 8.6.0。该错误是由标准在项目编译中产生的,在安装了 StandardJS 扩展的 VS Code IDE 中。(是的,我真的确保我所有的其他花括号都在正确的位置!)

4

1 回答 1

10

就像错误所说的那样,您需要将右花括号放在与后面的后续块相同的行上else

if (err.status === 'not found') {
  cb({ statusCode: 404 })
  return
} else {   // <--- now } is on same line as {
  cb({ statusCode: 500 })
  return
}

来自标准 linting文档的示例:

将 else 语句与花括号放在同一行。

eslint:大括号样式

// ✓ ok
if (condition) {
  // ...
} else {
  // ...
}

// ✗ avoid
if (condition) {
  // ...
}
else {
  // ...
}
于 2019-11-05T07:05:57.293 回答