是否存在要求条件语句外添加括号的ESLint规则?
ESLint强制条件语句子表达式加括号的实现方案
原生ESLint核心规则中没有直接满足该需求的规则——即强制给逻辑运算符(&&/||)连接的每个子表达式单独添加括号,并支持--fix自动修复的规则。
你可以通过以下两种方式实现需求:
自定义ESLint规则
编写自定义规则遍历代码AST,定位if/while等条件语句中的测试表达式,递归检查所有逻辑表达式的操作数:- 若操作数不是
ParenthesizedExpression类型,标记错误 - 实现修复逻辑,给未加括号的子表达式包裹
()
这种方式完全可控,能精准匹配你的代码风格要求。
- 若操作数不是
查找第三方社区插件
部分小众ESLint插件可能包含类似规则,但这类需求比较特殊,若找不到现成插件,自定义规则是更可靠的选择。
注意:这种强制加括号的规则会增加代码冗余(比如
if (x && y)会被修正为if ((x) && (y))),建议先评估是否需要全局强制执行该风格。
内容的提问来源于stack exchange,提问作者Jeffrey Tillwick
相关产品推荐
相关产品推荐

