是否有ESLint或Prettier规则可禁用无占位符的模板字面量?
解决方案
这个需求可以通过ESLint规则实现,同时支持自动修复:
1. 基础JS项目配置
在你的ESLint配置文件(.eslintrc.js、.eslintrc.json等)的rules字段中添加如下配置:
module.exports = { rules: { "quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": false }] } }
参数说明:
- 第二个参数
"single"指定代码默认使用单引号 allowTemplateLiterals: false禁止没有占位符的模板字面量,有占位符的模板字面量不受该规则限制avoidEscape: true是可选配置,开启后如果字符串内部包含单引号不需要转义,可以自动使用双引号包裹,避免不必要的转义字符
配置完成后,执行eslint --fix即可自动将所有无占位符的模板字面量转换为单引号,完全符合需求。
2. TypeScript项目配置
如果是TS项目,使用@typescript-eslint/eslint-plugin提供的同名规则即可,配置参数完全一致:
module.exports = { rules: { "@typescript-eslint/quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": false }] } }
Prettier兼容说明
Prettier目前没有单独处理该场景的原生规则,你可以按照常规方案配置ESLint和Prettier兼容(使用eslint-config-prettier关闭两者冲突规则),上述ESLint规则不会和Prettier的默认格式化逻辑冲突,自动修复后的代码可以直接通过Prettier校验。
内容的提问来源于stack exchange,提问作者LazioTibijczyk
相关产品推荐
相关产品推荐

