axios typescript 自定义 AxiosRequestConfig
Posted
技术标签:
【中文标题】axios typescript 自定义 AxiosRequestConfig【英文标题】:Axios typescript customize AxiosRequestConfig 【发布时间】:2020-03-05 18:10:20 【问题描述】:我使用 React 和 axios,最近我在 axios 上创建了一个自定义配置,如下所示:
import $axios from 'helpers/axiosInstance'
$axios.get('/customers', handlerEnabled: false )
但结果ts编译:
类型参数 ' handlerEnabled: boolean; ' 不可分配给“AxiosRequestConfig”类型的参数。 对象字面量只能指定已知属性,而“AxiosRequestConfig”类型中不存在“handlerEnabled”。
如何在 AxiosRequestConfig 上分配新类型?
像这样axios<AxiosRequestConfig & newType>
不想使用像.d.ts
这样的旧方法
【问题讨论】:
【参考方案1】:您可以使用 typescript decleration 合并功能扩展任何库类型。 (docs)
所以这应该可以完成工作:
// theFileYouDeclaredTheCustomConfigIn.ts
declare module 'axios'
export interface AxiosRequestConfig
handlerEnabled: boolean;
【讨论】:
【参考方案2】:// in axios.d.ts
import 'axios';
declare module 'axios'
export interface AxiosRequestConfig
handlerEnabled?: boolean;
【讨论】:
请为您的代码添加一些解释。 A code-only answer is not high quality。虽然此代码可能很有用,但您可以通过说明其工作原理、工作方式、何时应该使用以及它的局限性来改进它。请edit您的回答包括解释和相关文档的链接。 以防万一有人试图理解答案。您应该创建另一个包含上述内容的类型文件。如果您将其粘贴到您输入的 index.d.ts 中,它将破坏它们。以上是关于axios typescript 自定义 AxiosRequestConfig的主要内容,如果未能解决你的问题,请参考以下文章
Axios ReactJS - 无法读取未定义的属性“setState”
如何测试使用自定义 TypeScript React Hook 的组件?