老师您好,第七章扩展接口

来源:7-3 -3 扩展接口 - 混合对象实现+ demo 编写

taopoppy

2019-06-17

申明AxiosInstance为一个混合类型后,在axios.ts中为什么不直接写

import dispatchRequest from './core/dispatchRequest’
function _requestMethodWithoutData() {

}
function axiosMaker():AxiosInstance {
let axios = dispatchRequest;
axios.get= function(url: string, config?: AxiosRequestConfig): AxiosPromise {
return _requestMethodWithoutData(‘get’, url, config)
};
axios.post = xxx;

return axios
}
这样axios也是个混合类型,还不用声明core/Axios.ts中的Axios类
为什么要声明一个Axios的类,再把类上的原型属性拷贝到函数上,感觉很麻烦,有点不太理解

写回答

1回答

ustbhuangyi

2019-06-17

目前你这么写似乎没啥问题,不过未来要维护 Axios 实例中的属性如 interceptors、defauts,并且还要支持多个实例的情况,你这段代码该如何设计呢。

0
3
taopoppy
回复
ustbhuangyi
??很有道理,学到了,谢谢老师,继续努力?
2019-06-17
共3条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程