繁体   English   中英

可观察 <Any> 触发TSLint&#39;属性不存在&#39;

[英]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.gethttp.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM