类型响应的Angular 2和typescript参数不可分配

时间:2018-03-07 15:39:02

标签: angular typescript http

我有一个角度服务,其值定义为:

private client_comments  = new BehaviorSubject([]);

我正在尝试使用http调用的响应来设置值,但我看到了:

  

类型'响应'的争论不能分配给'任何[]'类型的参数。物业长度'类型'响应'

中缺少

......我的电话看起来像是:

this.http.get(final_url, o).subscribe( comments => {
  this.client_comments.next(comments)
})

我应该如何在响应上设置类型,以便它知道它将是一个数组?

2 个答案:

答案 0 :(得分:2)

this.client_comments.next(comments.json() as YourType[])

您还应该设置主题,使其输入为YourType[]

答案 1 :(得分:0)

如果您使用的是@angular/http套餐(已弃用),SQL error message

像这样使用它:

this.http.get(final_url, o)
    .map((res: Response) => res.json())
    .subscribe( comments: any[] => {
        this.client_comments.next(comments)
    });

如果您使用的是@angular/common/http套餐(推荐套餐),https://angular.io/api/http/Http

像这样使用它:

this.http.get<any[]>(final_url, o)
    .subscribe( comments: any[] => {
        this.client_comments.next(comments)
    });