在ts文件中本来是要对错误进行一个拦截,然后统一弹出一个message的,但是在这里调用this 会报错。
// 添加响应拦截
axiosTokenInstance.interceptors.response.use((response: any) => {
if (response.data.statusCode !== 0) {
this.$Message.error('haha');
} else {
return response.data;
}
},
(error) => {
if (error.response) {
const { message } = error.response.data;
return Promise.reject(new Error(message));
}
return Promise.reject(error);
}
);
然后修改了代码
const that = this;
// 添加响应拦截
axiosTokenInstance.interceptors.response.use((response: any) => {
if (response.data.statusCode !== 0) {
that.$Message.error('haha');
} else {
return response.data;
}
},
(error) => {
if (error.response) {
const { message } = error.response.data;
return Promise.reject(new Error(message));
}
return Promise.reject(error);
}
);
修改之后外面的this又被标红了[ts] "this" 隐式具有类型 "any",因为它没有类型注释。 [2683]谁能说下如何解决???/
ts提供了
// @ts-ignore
给用户标注要忽略检查的代码但是要注意this的对象引用,它是跟function() {}和() => {}的this引用是不一样的,既然使用了
@ts-ignore
,那一定要自己判断、调试正确了再提交代码,并且@ts-ignore不要滥用,否则就失去了ts的初衷了。https://www.tslang.cn/docs/ha...