Javascript 更漂亮的重新格式化单行'if'语句导致eslint错误:为什么?

Javascript 更漂亮的重新格式化单行'if'语句导致eslint错误:为什么?,javascript,eslint,prettier,Javascript,Eslint,Prettier,我希望在同样使用eslint的现有代码库上运行得更好 有很多地方存在单行ifs,我想让它们保持原样,但Prettier不断将它们更改为不带大括号的多行,这当然会导致错误 它来自: 如果(…)抛出新错误(…) 致: 是什么神奇的规则组合让漂亮的人忽略了这些?您使用的是无括号的if语句。你还忘了分号。如果语句不可靠,则无括号。在之后添加大括号将解决您的问题: if (...) { throw new Error(...); } 这也适用于: if (...) {throw new Error

我希望在同样使用eslint的现有代码库上运行得更好

有很多地方存在单行
if
s,我想让它们保持原样,但Prettier不断将它们更改为不带大括号的多行,这当然会导致错误

它来自:
如果(…)抛出新错误(…)

致:


是什么神奇的规则组合让漂亮的人忽略了这些?

您使用的是无括号的if语句。你还忘了分号。如果语句不可靠,则无括号。在之后添加大括号将解决您的问题:

if (...) {
   throw new Error(...);
}
这也适用于:

if (...) {throw new Error(...);}

您需要更改允许的最大行长度,默认值为80。这是Prettier在多行代码中使用无括号包装的唯一原因。预期的行为是,如果没有括号的语句位于单行上:

您可以更改
.prettierrc
文件中的最大行长度:

{
    "printWidth": 80
}

它导致了什么错误?请参阅@Barmar在将eslint从1.9升级到当前版本后,此问题已得到解决:)我仍然认为您应该改掉不使用大括号而使用
if
的习惯。请参阅链接问题。@Barmar是的,我同意,较新的eslint+prettier将它们重写为大括号,这正是我想要的。Win Win如果这对JavaScript不好,可能它需要正式停止支持它。支持语法并期望开发人员不使用它对我来说毫无意义。我使用无括号的单行if语句,因为它们只包含类似于
continue
的内容。我也不使用分号。
{
    "printWidth": 80
}