如何在 if/else 缺失时添加大括号变得更漂亮

问题描述 投票:0回答:2

我用谷歌搜索了一段时间,但没有找到如何做到这一点。我的项目中有 eslint 和 prettier 设置。

// What I have:
if (a == b) doSomething();

// What I want from either eslint or prettier
if (a == b) {
  doSomething();
}

任何人都可以告诉我如何完成这项工作吗?或者告诉我他们的配置可以做到这一点?

visual-studio-code coding-style eslint prettier
2个回答
19
投票

tl;dr :为您的项目创建一个 .eslintrc.json 并为 curly 创建一个规则。

{
    "rules": {
        "curly": "error",
    }
}

Prettier 仅打印代码。它不会改变它。 这是为了限制 Prettier 的范围。让我们专注于印刷并把它做得很好!

以下是 Prettier 范围之外的一些示例:

  • 添加/删除 {} 并返回可选位置。
  • 将 ?: 变成 if-else 语句。
  • 排序/移动导入、对象键、类成员、JSX 键、CSS 属性或其他任何内容。除了是一种转换而不仅仅是打印(如上所述)之外,由于副作用(例如对于导入),排序可能是不安全的,并且使得验证最重要的正确性目标变得困难。
  • 将单引号或双引号字符串转换为模板文字,反之亦然。

所以要得到你想要的,你应该使用 eslint。 eslint 有一个

--fix
选项和
all
规则,这将准确提供您想要的内容。

vscode 的 eslint。

eslint 的配置。

希望这有帮助。


0
投票

要在整个代码库中以编程方式全面进行此更改,假设您的

package.json
看起来像这样

{
  ...
  "scripts": { 
    ...
    "format": "prettier --write .",
    "lint": "eslint .",
  }
}

这样做:

  1. 更新您的
    .eslintrc.js
    ,就像已接受的答案所建议的那样
{
    "rules": {
        "curly": "error",
    }
}
  1. 奔跑
    npm run lint -- --fix
  2. 奔跑
    npm run format
© www.soinside.com 2019 - 2024. All rights reserved.