带有config.retry的Axios Error类型及拦截器config正确类型咨询
Axios Error类型与请求配置类型问题解答
带有config.retry属性的Axios Error类型
带config.retry属性的Error本质仍是AxiosError类型。这类自定义属性的出现,是因为你给Axios请求配置扩展了自定义字段——Axios允许开发者在发起请求时添加自定义配置参数,这些参数会被保留在error.config中,但默认的Axios类型定义不会包含这类自定义属性。
响应拦截器中error.config的正确类型
默认的AxiosRequestConfig确实不包含retry或retryCount,要让类型系统识别这些自定义属性,有两种可行方案:
1. 全局扩展Axios类型(TypeScript环境)
通过模块声明扩展AxiosRequestConfig,让所有场景下的该类型都包含自定义属性:
declare module 'axios' { interface AxiosRequestConfig { retry?: number; retryCount?: number; } }
添加这段声明后,error.config会自动被识别为包含retry、retryCount的扩展类型。
2. 局部类型断言
如果不需要全局扩展,可在使用时通过类型断言临时指定类型:
axios.interceptors.response.use( (response) => response, (error) => { const config = error.config as AxiosRequestConfig & { retry?: number; retryCount?: number }; // 后续使用config.retry、config.retryCount即可获得类型提示 } );
内容的提问来源于stack exchange,提问作者Laura
相关产品推荐
相关产品推荐

