TS封装axios
    		       		warning:
    		            这篇文章距离上次修改已过437天,其中的内容可能已经有所变动。
    		        
        		                
                在TypeScript中封装axios,可以创建一个封装了axios实例的类或函数库,并且可以添加适当的类型定义和错误处理。以下是一个简单的封装示例:
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
 
class HttpClient {
  private axiosInstance = axios.create({
    baseURL: 'http://your-api-url.com',
    timeout: 10000,
    // 其他配置...
  });
 
  public request<T>(config: AxiosRequestConfig): Promise<AxiosResponse<T>> {
    return this.axiosInstance.request(config);
  }
 
  public get<T>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T>> {
    return this.axiosInstance.get<T>(url, config);
  }
 
  public delete<T>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T>> {
    return this.axiosInstance.delete<T>(url, config);
  }
 
  public head<T>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T>> {
    return this.axiosInstance.head<T>(url, config);
  }
 
  // 其他HTTP方法(post, put, patch)...
}
 
export default new HttpClient();使用封装后的axios:
import httpClient from './path/to/HttpClient';
 
interface User {
  id: number;
  name: string;
}
 
httpClient.get<User[]>('/users').then(response => {
  console.log(response.data);
}).catch(error => {
  console.error('An error occurred:', error);
});这个封装提供了基本的HTTP方法,并且可以通过泛型指定返回数据的类型。同时,它使用了axios的实例来共享相同的配置和插件,比如请求拦截器和响应拦截器,可以在创建axios实例时添加。此外,错误处理被放在了封装方法的外部,以便在调用封装方法时处理错误。
评论已关闭