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

Prettier保存时为何自动移除fetch请求中Authorization头的引号

关于未加引号的Authorization请求头合法性与Prettier行为的说明

1. 未加引号的Authorization键完全符合传参规范

很多人会误以为HTTP请求头作为对象键时必须加引号,实际上这个判断和请求头规则无关,只需要遵循JavaScript对象字面量的基础语法规则:

  • JS对象的键名如果是合法标识符(组成字符仅包含字母、数字、下划线、$,不以数字开头,且不属于JS语法保留字),完全可以省略包裹键名的引号,加引号和不加引号的写法在语法上完全等价,运行时不会有任何行为差异。
  • Authorization 符合合法标识符的全部要求,因此作为headers对象的键时不需要加引号,fetch会正常识别该请求头,不会出现传参错误。
  • 你提供的示例代码里反而存在两处语法问题:一是method: POST中的POST未加引号,会被JS识别为变量而非请求方法字符串,正确写法应为method: 'POST';二是Content-type因为名称包含连字符-,不符合标识符命名规则,必须加引号,否则会直接触发语法报错,这也是Prettier不会移除该键引号的原因。

2. Prettier自动移除Authorization键引号是预期特性,不是Bug

Prettier是有强默认风格约束的代码格式化工具,核心目标就是消除代码中无意义的风格差异,它内置的默认格式化规则就包含「自动移除对象合法标识符键名上冗余的引号」这一项。
这个行为没有针对HTTP请求头做特殊判断,官方也没有提供对应的配置项来调整——因为这类引号本身就是不影响运行的冗余语法,移除后既不会改变代码逻辑,还能让代码风格更统一简洁,完全符合Prettier的设计逻辑。

格式化后可正常运行的完整代码参考:

fetch('your-request-url', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer <your-access-token>',
    'Content-Type': 'application/json'
  }
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:15:18