网站搜索

angular - typescript 错误:get 调用预期 0 个类型参数


我在返回 get 调用的那一行遇到了 TypeScript 错误:预期 0 个类型参数,但获取了 1 个。我的 get 调用哪里出错了?

 public get(params: SummaryParams): Observable<Summary[]> {
        const uri = `${this.config.URLS.LOAD_SUMMARY}`;
        const params = new HttpParams()
                      .set('startDate', params.startDate.toString())
                      .set('endDate', params.endDate.toString())
                      .set('userId', params.userId);

        return this.http.get<Summary[]>(uri, { params });
      }

答案#1

HttpClient 有可以用来提供响应类型的泛型方法。Http 没有。

该错误意味着 <Summary[]> 泛型参数是不被期望的,并且 http 不是 HttpClient 的实例;很可能是 Http 的一个实例。

如果应用程序使用 Angular 4.3 或更高版本,Http 应该被替换为 HttpClient。如果必须使用 Http,则响应应该被转换,这是 HttpClient 和 Http 之间的少数几个区别之一:

    return this.http.get(uri, { params })
    .map(res => <Summary[]>res.json());