我正在使用Angular 2并将HTTP请求中的错误传递给logAndPassOn
方法。我收到错误“属性'状态'在类型'错误'上不存在。”类型错误是对象,但似乎类型错误将被识别为类型文件是。
private logAndPassOn (error: Error) {
if (error.status == 403) {
Do things
}
return Observable.throw(error);
}
我通过将错误的类型设置为“any”来解决这个问题,但似乎应该有更好的方法。是否有一个库来导入typeof Error?除了编写我自己的Error类并导入它之外,有没有办法处理它?</ p>
答案 0 :(得分:2)
传递给Http
错误回调的对象实际上来自Response
模块的类型@angular/http
。这与您从初始Http调用获得的Response
相同。如果存在错误响应,则Response
将作为错误发送给订阅者。
import { Response } from '@angular/json';
http.get(..)
.subscribe(
(res: Response) => { doSomething(res.json()) }
(res: Response) => { ... });
基本上,您尝试使用Error
是不正确的。它在您使用any
时有效,因为在运行时传递的实际Response
对象, 具有status
属性。