如何删除打字稿中的未知属性

时间:2019-04-01 23:45:15

标签: typescript axios

我正在使用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注释并仍然访问打字稿一无所知的属性?

1 个答案:

答案 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);
});