从今天起我将从零用Typescript重构Axios,不仅可以让我从真实的项目中掌握Typescript,也能让我对一个库的实现有更深刻的掌握
为什么学习Typescript?
最近TypeScript 的火爆程度大有成为下一代前端开发语言的趋势,TypeScript 作为 JavaScript 语言的超集,它为 JavaScript 添加了可选择的类型标注,大大增强了代码的可读性和可维护性。同时,它提供最新和不断发展的 JavaScript 特性,能让我们建立更健壮的组件。其次Typescript是技术转型的趋势,很多大公司的前端团队已经陆续往Typescript技术栈上转型,享受Typescript带来的便利。
为什么选择Axios?
- Axios非常有名
- 通过对Axios的重构可以让我们对其内部实现的原理了如指掌,让我们工作中更加熟练的使用
- 代码量适中,学习起来不会有太大的压力
需求分析
Features
- 在浏览器端使用XMLHttpRequest对象通讯
- 支持Promise API
- 支持请求和响应的拦截器
- 支持请求和响应的数据转换
- 支持请求的取消
- JSON数据的自动转换
- 客户端防止XSRF
这里的重构不包括axios在Node中的实现。
初始化项目
TypeScript library starter
这里我们使用这个脚手架工具,它可以帮我们快速初始化一个TypeScript项目。
使用方式
git clone https://github.com/alexjoverm/typescript-library-starter.git YO