You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prettier ESLint:能否强制引号既避免转义又保持一致?

解决方案

你遇到的是Prettier默认行为导致的混合引号问题——当开启singleQuote: true时,Prettier会默认启用avoidEscape: true,自动为不含字面单引号的字符串切换为单引号(避免不必要的转义),但含单引号的字符串会保留双引号,从而出现混合。以下是两种符合你需求的实现方案:

方案一:统一使用单引号(需转义字面单引号)

如果坚持默认单引号风格,可强制所有字符串使用单引号,即使需要转义内部的单引号,确保引号一致:

  1. 修改Prettier配置文件(如.prettierrc或prettier.config.js):
{
  "singleQuote": true,
  "avoidEscape": false
}
  1. 同步ESLint规则(避免冲突):
    在.eslintrc中添加:
{
  "rules": {
    "quotes": ["error", "single", { "avoidEscape": false }]
  }
}

配置后,你的数组会被格式化为:

['R\\'', 'L', 'U', 'D\\'', 'F\\'', 'B']

方案二:统一使用双引号(无需转义字面单引号)

如果接受统一双引号,既不需要转义内部单引号,又能保持引号一致,这是更贴合你原数组写法的方案:

  1. 修改Prettier配置:
{
  "singleQuote": false
}
  1. 同步ESLint规则:
{
  "rules": {
    "quotes": ["error", "double", { "avoidEscape": true }]
  }
}

配置后,你的数组会保持全双引号格式,不会出现混合:

["R'", "L", "U", "D'", "F'", "B"]

关键说明

Prettier的avoidEscape选项是导致混合引号的核心:默认值为true时,会优先避免转义而切换引号类型;设为false则强制遵循singleQuote的配置,哪怕需要转义。

内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:02:52