![](/img/trans.png)
[英]Property 'mergeMap' does not exist on type 'Observable<any>'
[英]Observable<Any> triggers TSLint 'property does not exist'
我在这里有这段代码:
this._auth.getToken().flatMap(token => {
return this._http.post("/authenticate");
}).flatMap(res => {
let headers = new Headers();
headers.append("Content-Type", "application/json");
headers.append("Authorization", res.json().Token);
return this._http.get(this.endpoints[endpoint], {headers: headers});
});
http.get和http.post返回一个Observable <Response> ,其中包含一个.json方法
但是flatMap返回的Observable <Any>不包含.json方法。
它可以正常工作,但是TSlint抱怨:
第32列第49行的类型'{}'不存在属性'json'
难道我做错了什么? 这是预期的吗? 没什么大不了的,但是也许这是代码中更大问题的征兆。
要解决此问题,您应该添加Response
作为返回值的类型
flatMap((res: Response) => {
let headers = new Headers();
headers.append("Content-Type", "application/json");
headers.append("Authorization", res.json().Token);
return this._http.get(this.endpoints[endpoint], {headers: headers});
});
注意
该问题已经修复,请检查此评论 ,因此请确保您不是最新版本。 我使用beta.0对其进行了测试,即使不添加Response
作为类型,我也无法重现此消息。
参考
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.