我正在使用axios处理ajax请求,并使用deepmerge库将两个对象合并在一起。这是我的代码段:
axios.interceptors.response.use((response) => {
return response;
}, (error) => {
let basicResponse = deepmerge(error.response, { responseText: error.request.responseText });
// @ts-ignore
delete basicResponse.config;
// @ts-ignore
delete basicResponse.data;
return Promise.reject(error);
});
我不想要合并对象的精确克隆;我要删除一些属性(在此示例中为config和data)。如果删除第一个//@ts-ignore
注释,则打字稿会抱怨:
属性'config'不存在于类型'{responseText:any; }'。
如何删除//@ts-ignore
注释并仍然访问打字稿一无所知的属性?
答案 0 :(得分:1)
您可以尝试
axios.interceptors.response.use((response) => {
return response;
}, (error) => {
let basicResponse: any = deepmerge(error.response, { responseText: error.request.responseText });
delete basicResponse.config;
delete basicResponse.data;
return Promise.reject(error);
});