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 的组件?

如何测试使用自定义TypeScript React Hook的组件?

axios

axios

为啥这个打字稿程序永无止境?