如何禁用自动添加多余括号的ESLint/Prettier规则?
如何移除自动添加的多余括号?
我编写了以下代码:
const a = 1; const b = 1; const c = 1; const d = 1; const t = a * b * (c + d) / 100;
但某条规则自动将其修改为:
const t = (a * b * (c + d)) / 100; // ^ ^ 多余的括号
我不希望出现这些多余括号,但无法确定是ESLint还是Prettier添加的。我的.eslintrc配置如下:
{ "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { "project": ["./tsconfig.json"] }, "plugins": ["@typescript-eslint", "prettier"], "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"], "rules": { "no-console": 1, "prettier/prettier": 2, "no-case-declarations": 0, "no-extra-parens": 2, "@typescript-eslint/no-extra-parens": 2 }, "env": { "browser": true, "node": true } }
更新:未添加括号时,鼠标悬停提示指向@typescript-eslint/no-extra-parens规则。
解决方案
- 问题根源是你开启了
@typescript-eslint/no-extra-parens规则(配置中设为2,即错误级别),该规则会强制为表达式添加括号以“明确优先级”,但在这个场景下属于多余括号。 - 修改
.eslintrc的rules部分,将该规则关闭:
"rules": { "no-console": 1, "prettier/prettier": 2, "no-case-declarations": 0, "no-extra-parens": 0, // 同时关闭原生ESLint的同名规则,避免冲突 "@typescript-eslint/no-extra-parens": 0 }
- Prettier默认不会在这种场景下添加多余括号,所以无需调整Prettier配置。
内容的提问来源于stack exchange,提问作者Sandra Schlichting
相关产品推荐
相关产品推荐

