Links

08 Axios 自定义返回值类型

修改 axios 的类型声明,添加 axios.d.ts
import { AxiosRequestConfig } from "axios"
declare module "axios" {
export interface AxiosInstance {
<T = any>(config: AxiosRequestConfig): Promise<T>
request<T = any>(config: AxiosRequestConfig): Promise<T>
get<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>
delete<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>
head<T = any>(url: string, config?: AxiosRequestConfig): Promise<T>
post<T = any>(
url: string,
data?: any,
config?: AxiosRequestConfig
): Promise<T>
put<T = any>(
url: string,
data?: any,
config?: AxiosRequestConfig
): Promise<T>
patch<T = any>(
url: string,
data?: any,
config?: AxiosRequestConfig
): Promise<T>
}
}
interface Result<T = string> {
code: number
data: T
}
axios.get<Result>("/url") // 返回 Primise<Result<string>>