拦截器每一个元素的reslove方法如下:
interface PromiseChain<T> {
resolved: ResolvedFn<T> | ((config: AxiosRequestConfig) => AxiosPromise)
rejected?: RejectedFn
}
export interface ResolvedFn<T> {
(val: T): T | Promise<T>
}
这里的 ResolvedFn 指定了接受和返回的类型必须相同,但实际使用中:
axios.interceptors.response.use(res => {
res.data += '3'
return res.data
})
我返回的是T类型的data类型,我以为ts会报错,但并没有,想问问老师原因是什么?
平时使用中响应拦截器有时候会传入和返回的类型不一致,这里设计成传入和返回的类型一致是不是有点不太合理呢?