如何将任何类型的值应用于可观察对象返回的对象?

时间:2019-07-04 09:50:19

标签: angular rxjs

我有一个简单的可观察对象,用于从URL https://api.github.com/users检索数据,我希望能够映射此数据,以便只能从每个用户返回login属性包含在端点返回的数组中。

但是,当我尝试在地图函数上调用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))
});

2 个答案:

答案 0 :(得分:-1)

您可以添加any来定义out的类型

会是这样

var githubStream = this.http.get('https://api.github.com/users')

githubStream.subscribe((out: any) => {
  pipe(map(data => data.login))
});

答案 1 :(得分:-1)

    var githubStream = this.http.get<any>('https://api.github.com/users');

githubStream.subscribe(out => {
    pipe(map(data => data.login))
});
  

已更新

 protected getUsers<T>(url: string):  Observable<T> {
return this.http.get<any>(url)
.pipe(map(data => {
  return data.body 
}));

}

this.getUsers.subscribe(data => {
      console.log(data.login)
    }