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

如何在Typescript中为axios设置默认请求头

TypeScript 中为axios设置自定义默认请求头的解决方案

报错原因

该报错为TypeScript类型检查不通过导致:axios内置的类型定义中,默认请求头common对象未声明x-auth-token这个自定义字段,直接赋值会触发类型不匹配错误。

可选解决方案

  • 方案1:临时类型断言,适合小项目或快速调试场景
    直接对common对象做类型断言,告诉TypeScript该对象允许自定义字符串键:
function setJwt(jwt: string | null) {
  (axios.defaults.headers.common as Record<string, string | null>)["x-auth-token"] = jwt;
}
  • 方案2:扩展axios全局类型,适合长期维护的中大型项目
    在项目中新建类型声明文件(如src/typings/axios.d.ts),添加以下内容扩展axios的请求头类型:
import 'axios';

declare module 'axios' {
  export interface AxiosRequestHeaders {
    'x-auth-token': string | null;
  }
}

类型扩展完成后原代码可直接正常运行,无需额外修改。

  • 方案3:使用axios内置set方法,适配axios v0.22.0及以上版本
    新版本axios的headers对象提供原生的set方法,天生支持自定义字段,无需额外处理类型:
function setJwt(jwt: string | null) {
  // 可按需添加判空逻辑,避免headers不存在的极端情况
  if (axios.defaults.headers) {
    axios.defaults.headers.common.set('x-auth-token', jwt);
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:06:05