我正在尝试使用角度拦截器将所有HttpResponse拦截为
return next.handle(request).pipe(
map((event: HttpEvent<any>) => {
if (event instanceof HttpResponse) {
// do stuff with response and headers you want
event.body = event.body.data || event.body;
console.log('event--->>>', event);
}
return event;
})
);
但是打字稿给出了错误
ERROR in src/app/shared/interceptors/auth.interceptor.ts(35,17): error TS2540: Cannot assign to 'body' because it is a read-only property.
我该怎么办?
注意:使用
Object.assign
克隆对象仍然会给新对象带来相同的错误。
body
对象的event
属性是只读的,您不能重新定义/重新分配它。您可以做的是将事件复制到新创建的事件中,修改该事件的主体,然后返回该对象。
您不能像这样重新分配变量:
最后使用event.clone方法解决了