防止 Prettier 删除括号

col*_*mer 17 javascript reactjs react-native visual-studio-code prettier

我在 React Native 项目的 VS Code 中使用 Prettier,它删除了混合运算符中或用括号声明 var 时的括号。如何防止 Prettier 这样做?

示例1:

 const foo = (a && b) || c;
Run Code Online (Sandbox Code Playgroud)

后:

const foo = a && b || c;
Run Code Online (Sandbox Code Playgroud)

示例2:

const c = (a.toString()).toUpperCase();
Run Code Online (Sandbox Code Playgroud)

后:

const c = a.toString().toUpperCase();
Run Code Online (Sandbox Code Playgroud)

我知道在大多数情况下它不会改变逻辑,但我想禁用此功能。

小智 7

您可以使用 \xe2\x80\x9cprettier-ignore\xe2\x80\x9d 注释来忽略部分文件。\n例如 // prettier-ignore

\n

这里有文档链接: https: //prettier.io/docs/en/ignore.html

\n

  • 这可行,但我建议您仔细检查您是否确实需要它。我有一个案例,我首先认为 prettier 是通过删除括号来改变我的表达式的含义,所以它会返回一些意想不到的东西。但后来发现——当然——事实并非如此,而且我才是表达错误的人。因此,最好假设 prettier 做得正确,并且仅使用它来保留格式中纯粹的视觉偏差,而不是逻辑偏差。可能会有例外,但我想,提交错误报告会更好。 (2认同)

小智 -7

您可以在settings.json中进行配置并添加“prettier.bracketSpacing”,请阅读此处

您还可以使用更具可定制性的 eslint,并且可以使用不同的代码风格,例如 airbnb ...

  • prettier.bracketSpacing 不是我需要的,您可以重新检查上面的示例吗 (2认同)