谁能告诉我这有什么问题?我看到我应该添加.topromise()或使用then,但这不起作用。
getWebErrors(): ng.IPromise<Array<IWebErrors>> {
var defer = this.q.defer();
this.http({
url: `/api/v1/admin/GetWebErrors`,
method: "GET"
})
.success((response: IQuote) => {
defer.resolve(response);
})
.catch(reason => {
defer.reject();
});
return defer.promise;
}
答案 0 :(得分:0)
在较新版本的TS中,类型检查变得更加严格。在这种情况下,原因是如果您没有为defer
指定类型参数,则默认值为{}
。简单的解决方案是为defer
指定类型参数,也为http
// Assumed missing types
interface IQuote extends Array<IWebErrors> {}
interface IWebErrors {}
getWebErrors(): ng.IPromise<Array<IWebErrors>> {
var defer = this.q.defer<Array<IWebErrors>>();
this.http<IQuote>({
url: `/api/v1/admin/GetWebErrors`,
method: "GET"
})
.success((response) => {
defer.resolve(response);
})
.catch(reason => {
defer.reject();
});
return defer.promise;
}