拿起Typescript做一个轮子(五)
扩展接口
需求分析
为了更加方便的使用axios发送请求,我们可以为所有支持请求方法扩展一级接口:
- axios.request(config)
- axios.get(url, [,config])
- axios.delete(url, [,config])
- axios.header(url, [,config])
- axios.options(url, [,config])
- axios.post(url,[ ,data[,config]])
- axios.put(url,[ ,data[,config]])
- axios.patch(url,[ ,data[,config]])
从需求上来看,axios方法不再单单是一个方法,更像是一个混合对象,本身是一个方法,又有很多方法属性,接下来我们就来实现这个混合对象。
接口类型定义
根据需求分析,混合对象axios本身是一个函数,我们可基于类的方式去实现它的方法属性,然后把这个类的原型属性和自身属性再拷贝到axios上。
我们先来给axios混合对象定义接口
types/index.ts:
文章图片
文章图片
实现混合对象
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
实现axios函数重载
文章图片
【拿起Typescript做一个轮子(五)】
推荐阅读
- 我要做大厨
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 我从来不做坏事
- 子龙老师语录
- 做一件事情的基本原理是什么()
- 做个俗物有什么不好
- 28岁|28岁,做一个通透又自由的姑娘。
- 良心
- 原生家庭之痛与超越
- 我喜欢做菜,是因为懂得了什么是爱