看起来是一个规范文件,约束了 axios 的所有 api,这里就看几个常规的
export interface AxiosRequestConfig {url?: string;method?: Method;baseURL?: string;transformRequest?: AxiosTransformer | AxiosTransformer[];transformResponse?: AxiosTransformer | AxiosTransformer[];headers?: any;params?: any;paramsSerializer?: (params: any) => string;data?: any;timeout?: number;timeoutErrorMessage?: string;withCredentials?: boolean;adapter?: AxiosAdapter;auth?: AxiosBasicCredentials;responseType?: ResponseType;xsrfCookieName?: string;xsrfHeaderName?: string;onUploadProgress?: (progressEvent: any) => void;onDownloadProgress?: (progressEvent: any) => void;maxContentLength?: number;validateStatus?: (status: number) => boolean;maxRedirects?: number;socketPath?: string | null;httpAgent?: any;httpsAgent?: any;proxy?: AxiosProxyConfig | false;cancelToken?: CancelToken;}
这个就是 axios 的请求配置参数约束,常用的几个就是:
url
:请求的路径
method
: 请求的方法(get
、post
、put
,delete
)
headers
:请求头(推荐不自定义)
params
:路径参数
data
:post
参数
responseType
:响应数据类型
onUploadProgress
:上传进度
cancelToken
:取消传输 token
export interface AxiosResponse<T = any> {data: T;status: number;statusText: string;headers: any;config: AxiosRequestConfig;request?: any;}
这个是 Axios
响应对象的约束,可以清晰的看到它返回了一个标准的 http
相应对象:
data
:响应数据
status
:状态码
statusText
:状态文本
headers
:响应头
config
:配置
request
:请求体
export interface AxiosInstance {(config: AxiosRequestConfig): AxiosPromise;(url: string, config?: AxiosRequestConfig): AxiosPromise;defaults: AxiosRequestConfig;interceptors: {request: AxiosInterceptorManager<AxiosRequestConfig>;response: AxiosInterceptorManager<AxiosResponse>;};getUri(config?: AxiosRequestConfig): string;request<T = any, R = AxiosResponse<T>> (config: AxiosRequestConfig): Promise<R>;get<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;delete<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;head<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;options<T = any, R = AxiosResponse<T>>(url: string, config?: AxiosRequestConfig): Promise<R>;post<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;put<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;patch<T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxiosRequestConfig): Promise<R>;}
这个就是 axios 本 axios 了,约束了 axios 对象属性
提供了各种方法:
get
:发送 get
请求
post
:发送 post
请求
config
:请求配置
getUri
:获取资源路径
export interface AxiosError<T = any> extends Error {config: AxiosRequestConfig;code?: string;request?: any;response?: AxiosResponse<T>;isAxiosError: boolean;toJSON: () => object;}
这个是 axios 的错误对象
他有自带一个 toJSON 方法可以将错误对象转成 json