是否存在无需插件的ESLint规则禁止单行if语句中执行赋值操作
答案
可以通过ESLint原生的prefer-ternary规则实现该需求,无需引入第三方插件。
规则适配说明
- 默认配置下,该规则仅会对「if-else两个分支均为同一个变量执行赋值操作」的场景抛出错误,刚好匹配你需要禁止的代码写法。
- 对于你允许的两类写法,该规则不会触发校验:
- if-else分支内为
return语句 - if-else分支内为自增/自减等非显式赋值操作
- if-else分支内为
配置示例
在你的ESLint配置文件中添加如下规则即可:
{ "rules": { "prefer-ternary": "error" } }
校验效果验证
- 你给出的允许通过的代码:无任何报错,符合预期
- 你给出的需要报错的赋值类if-else代码:会触发该规则的错误提示,引导改用三元表达式完成赋值
- 你给出的推荐三元表达式写法:可正常通过校验
内容的提问来源于stack exchange,提问作者AncientSwordRage
相关产品推荐
相关产品推荐

