typescript封装axios
时间: 2023-08-21 07:04:53 浏览: 171
以下是一个基本的 TypeScript 封装 Axios 的示例:
```
import axios, { AxiosResponse } from 'axios';
interface RequestConfig {
url: string;
method: string;
params?: any;
data?: any;
}
export default class Http {
private static instance = axios.create({
baseURL: 'https://api.example.com',
timeout: 5000,
headers: {
'Content-Type': 'application/json',
},
});
public static async request<T>(config: RequestConfig): Promise<T> {
const response: AxiosResponse<T> = await this.instance.request(config);
return response.data;
}
public static async get<T>(url: string, params?: any): Promise<T> {
const response: AxiosResponse<T> = await this.instance.get(url, { params });
return response.data;
}
public static async post<T>(url: string, data?: any): Promise<T> {
const response: AxiosResponse<T> = await this.instance.post(url, data);
return response.data;
}
public static async put<T>(url: string, data?: any): Promise<T> {
const response: AxiosResponse<T> = await this.instance.put(url, data);
return response.data;
}
public static async delete<T>(url: string): Promise<T> {
const response: AxiosResponse<T> = await this.instance.delete(url);
return response.data;
}
}
```
这个示例中,首先我们引入了 Axios 和 AxiosResponse。在 Http 类中,我们使用了一个私有的静态实例 instance 来创建一个 Axios 实例,并设置了一些默认配置。我们还定义了一个 RequestConfig 接口,用于传递给 Axios 实例的请求配置。接下来,我们定义了一些静态方法,如 request、get、post、put 和 delete,这些方法分别对应着 Axios 实例的请求方法。在每个方法中,我们使用 Axios 实例对应的请求方法,并返回响应数据。最后,我们将整个 Http 类导出,以便在其他地方使用。
阅读全文