# TypeScript-Axios **Repository Path**: luoob/tsAxios ## Basic Information - **Project Name**: TypeScript-Axios - **Description**: 使用typescript重构axios - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-17 - **Last Updated**: 2022-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TypeScript 重构浏览器版Axios😁 > 后续有空会继续完成node版的Axios,其实是大同小异的 源码为ts源码,如需js请自行转换 #### 简介 因为学习 typescript 后,如果不加以练习去巩固的话。那就相当于和没学一样了,所以这个小项目诞生了。 当然作为这次收获也是非常多的,无论实在思想上还是在技巧上,都得以有很大的一次提升。此项目在chrome浏览器环境下进行开发,没有考虑到兼容性的问题,采用标准的 XMLHTTP 协议。 #### 项目搭建 使用 TypeScript library 这个第三方库 这个类似于vue的脚手架的一样,会帮助我们搭建好一个大体的框架,只需要将关注点放在src目录下。 #### 痛点 不过使用这个库的最大的一个痛点就是,我和他们采用的代码风格有点不一样,代码风格格式化采用prettier这个工具。 我是喜欢代码后面加`;`的,而无论我怎么修改配置文件,也找过node_modules里面的文件。改了又改,还是找不到权重最高的包在哪里。 #### 完成度 ##### 基础功能 - axios(config) - axios#request(config) - axios#get(url[, config]) - axios#delete(url[, config]) - axios#head(url[, config]) - axios#options(url[, config]) - axios#post(url[, data[, config]]) - axios#put(url[, data[, config]]) - axios#patch(url[, data[, config]]) - axios#getUri([config]) ##### 错误处理 ##### 拦截器 - axios.interceptor.request - axios.interceptor.response ##### 取消功能 - axios.isCancel() - axios.CancelToken() - axios.Cancel() ##### 静态方法的封装 - axios.create(config) - axios.all() - axios.spread() ##### 其他功能 - withCredentials - XSRF防御 - 上传和下载进度的监听 - HTTP授权 - 自定义合法状态码 - 自定义参数序列化 - baseUrl - 默认配置的修改 该项目还未进行完整的测试过,修改编写的时候,只用过少数的demo测试。 #### 希望 该项目开源,不希望用于商业用途,仅供大家学习参考。 #### 使用 ```shell git clone mygit cd folder npm install npm run dev ``` #### 谢谢大家😀