【发布时间】:2019-07-04 09:50:19
【问题描述】:
我有一个简单的 observable 用于从 url https://api.github.com/users 检索数据,我希望能够映射这些数据,以便我只能从数组中包含的每个用户返回 login 属性由端点返回。
但是,当我尝试在我的 map 函数上调用 data => data.login 时,我收到一个编译器错误,提示 Property 'login' does not exist on type {}。我理解这是因为返回的对象没有类型。
如果不为返回的对象创建接口,我如何将any 类型应用于可观察对象公开的对象,以便我可以使用map 对其进行转换?
var githubStream = this.http.get('https://api.github.com/users');
githubStream.subscribe(out => {
pipe(map(data => data.login))
});
【问题讨论】:
-
类似
githubStream.subscribe((out: any) => { pipe(map(data => data.login)) }); -
对于那个特定的 observable,因为它支持泛型,
this.http.get<any>(...)?但最好更具体一点——写一个代表实际返回值的接口。见angular.io/guide/http#type-checking-the-response。 -
@GopeshSharma 这仍然给编译器错误?