是不是可以这么理解修改后的request方法?
来源:7-4 -1 axios 函数重载 - 需求分析+ 重载实现+ demo 编写

fatbin
2019-07-03
如果单独使用Axios类,是不是可以理解修改后的参数都是any类型的request方法其实跟直接使用js差不多(除了限制了返回类型)?
另外能不能对类的方法进行重载?类似在Axios接口里面定义多个request方法
=update=
对于第一个问题,其实我是觉得Axios类的request方法写起来跟直接写js差不多(参数都是any类型)。
request(url: any, config?: any): AxiosPromise {
if (typeof url === 'string') {
if (!config) {
config = {}
}
config.url = url
} else {
// 如果url不是一个字符串,意味这这里直接就传入了一个config配置
config = url
}
return dispatchRequest(config)
}
之所以能如此“随意”是不是因为我们的Axios类最终还是通过配合AxiosInstance接口使用的?AxiosInstance接口就会对参数的“结构”进行限制?
写回答
2回答
-
写 any 是为了实现重载,对外提供的接口对类型有限制就可以了
112019-07-23 -
ustbhuangyi
2019-07-04
没太明白你提的第一个问题,是不是可以配合代码演示一下?
第二个问题是可以的啊,这个课程不就去 Axios 类的 request 方法重载了么,但是实现的话并不能在类上定义多个 request 方法,只能在内部实现,而在类型定义的时候,可以定义多个接口。因为 TypeScript 终究是要编译成 JavaScript,不可能跨越 JavaScript 的语法限制。012019-07-08
相似问题