我无法构建我的Angular4项目,因为我真的不明白这个错误。我有来自@angular的我的导入,如Response,Headers,Http。当我尝试构建项目时,我收到此错误:
TS2453:类型参数的类型参数' T'无法从使用中推断出来。考虑明确指定类型参数。 输入参数候选者'响应'不是有效的类型参数,因为它不是候选者的超级类型'响应'。 财产类型'类型'是不相容的。 输入' string'不能分配给' ResponseType'。
它指的是这段代码:
public getPatients(): Observable<any> {
//noinspection TypeScriptValidateTypes
return this.http.get(AppSettings.API_ENDPOINT + 'patient', { headers: this.getHeaders() })
.map((res:Response) => res.json())
.catch((error) => Observable.throw(error.json().error || "Server error"));
}
我找到了一个使用导入的解决方法,我在这些主题中添加了所有提及但它仍然没有帮助。
答案 0 :(得分:1)
我遇到了同样的问题,我发现问题在于我没有输入正确的东西。
尝试使用这些:
import {Http, Response} from "@angular/http";
import 'rxjs/add/operator/map'
import 'rxjs/add/operator/catch';
import {Observable } from "rxjs/Observable";
答案 1 :(得分:0)
如果有这样的代码:
editItem(item: Item) {
return this.http.put(`${this.BACKOFFICE_URL}`, item, this.getOptions())
.map((res: Response) => {
return res.status === 200 ? res.json() : {};
})
.catch((error: any) => {
return Observable.throw(error);
})
}
我在代码中看到的唯一区别是我没有为函数添加返回类型。