Axios 打字稿自定义 AxiosRequestConfig

Zei*_*aki 10 javascript types typescript reactjs axios

我正在使用 React 和 axios,最近我在 axios 上创建了一个自定义配置,如下所示:

import $axios from 'helpers/axiosInstance'
$axios.get('/customers', { handlerEnabled: false })
Run Code Online (Sandbox Code Playgroud)

但结果 ts 编译:

'{ handlerEnabled: boolean; 类型的参数 }' 不可分配给类型为 'AxiosRequestConfig' 的参数。对象字面量只能指定已知属性,并且类型“AxiosRequestConfig”中不存在“handlerEnabled”。

如何在 AxiosRequestConfig 上分配新类型?像这样的东西axios<AxiosRequestConfig & newType>

不想使用旧方法 .d.ts

Edd*_*oro 21

您可以使用打字稿声明合并功能扩展任何库类型。(文档

所以这应该可以完成工作:

// theFileYouDeclaredTheCustomConfigIn.ts
declare module 'axios' {
  export interface AxiosRequestConfig {
    handlerEnabled: boolean;
  }
}
Run Code Online (Sandbox Code Playgroud)