老师您好,我理解,axios的config参数是用户填写的,没法保证带入的timeout为number类型,而我们却在接口AxiosRequestConfig中限定timeout为number,这也就是说,相当于我们已经在后续的处理逻辑中,默认用户填写的就是number类型。
那如果用户带入的timeout就是不规范的,比如:“1000”,“1000ms”,甚至"akjshdaj",那不会发生错误么?
我们是否应该指定timeout为 timeout?: any
,然后根据用户带入的config.timeout进行类型判断,如果是"1000"或"1000ms"这种的就转换成1000,如果是NaN就抛出错误或者警告。
下面是老师在教程中写的源码:
export interface AxiosRequestConfig {
// ...
timeout?: number
}
const { /*...*/ timeout } = config
if (timeout) {
request.timeout = timeout
}
request.ontimeout = function handleTimeout() {
reject(new Error(`Timeout of ${timeout} ms exceeded`))
}