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

如何在typed-rest-client中向IRequestOptions.additionalHeaders追加内容?

错误原因分析
  • typed-rest-client 中 IRequestOptions.additionalHeaders 对应的 IHeaders 类型本质是键为字符串、值为字符串的普通对象,类型定义为 interface IHeaders { [key: string]: string },并不是浏览器原生 Headers 类的实例,本身不存在 append、push 等方法。
  • 你之前调用 append 方法属于误用,运行时会因方法不存在、错误的隐式类型转换触发你遇到的 TypeError 报错。
正确实现方式

可变修改(直接修改原对象)

先兜底处理additionalHeaders可能为undefined的情况,直接给对象新增属性即可:

// 兜底确保additionalHeaders是对象
this.#options.additionalHeaders = this.#options.additionalHeaders ?? {};
// 直接追加Cookie头,原有其他头不会受影响
this.#options.additionalHeaders['Cookie'] = `X-DM-DST=${this.#token}`;

不可变修改(生成新对象,不改动原初始配置)

如果需要保留原初始头对象不变,用对象扩展运算符生成新的头对象赋值即可:

this.#options.additionalHeaders = {
  // 保留原有所有头
  ...this.#options.additionalHeaders,
  // 新增/覆盖Cookie头
  Cookie: `X-DM-DST=${this.#token}`
};
补充说明

如果原有additionalHeaders中已经存在Cookie字段,直接赋值会覆盖原有Cookie,需要拼接的话可以用如下写法:

this.#options.additionalHeaders = this.#options.additionalHeaders ?? {};
const originCookie = this.#options.additionalHeaders.Cookie ?? '';
this.#options.additionalHeaders.Cookie = originCookie 
  ? `${originCookie}; X-DM-DST=${this.#token}`
  : `X-DM-DST=${this.#token}`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:00:03