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());
