请问老师为什么不会报错
来源:7-4 -1 axios 函数重载 - 需求分析+ 重载实现+ demo 编写
 
			hy_wang
2020-11-07
请问下老师,这章节我有一个小疑问。
关于如果调用axios.request(config),这是我仅仅传入了一个参数。
AxiosInstance 这个interface规定了request接受一个参数没错,但是

这段逻辑,new Axios这个类返回context实例中,存在一个request原型方法,这时request方法在类中定义的是接受两个any参数。可是createInstance方法返回的AxiosInstance类型定义上要求原型上的request只有一个config参数。
简单描述就是说返回的instance这个实例,是AxiosInstance类型。AxiosInstance类型定义原型上的request仅接受一个参数。而context实例上的request方法确实上接受两个参数。
这是类上的request方法参数定义,只接受一个config参数且要求AxiosRequestConfig类型。

这是interface中的request方法定义。

这时TS为什么不会报错,明明参数个数对不上以及参数类型也对不上。
3回答
- 
				
				虽然是两个参数,但是注意第一个是 any,第二个也是 any,而且第二个还是可选参数,说明可以是任意类型的一个参数,也可以是任意类型的两个参数,所以这种定义是匹配类型定义的。 052020-11-09
- 
				  hy_wang 提问者 2020-11-07  老师这是我的理解 00
- 
				  hy_wang 提问者 2020-11-07  老师我仍然认为本身request类型定义一个参数,但是类中的原型request方法有两个参数定义。那么就会报错,但是因为课程中return的时候进行了断言所以就不会报错。 012020-11-09
相似问题
 
						
