错误 TS2346:提供的参数与调用目标的任何签名都不匹配
Posted
技术标签:
【中文标题】错误 TS2346:提供的参数与调用目标的任何签名都不匹配【英文标题】:error TS2346: Supplied parameters do not match any signature of call target 【发布时间】:2016-02-15 06:48:24 【问题描述】:我是 Typescript 和 Angular2 的新手,我正在尝试在 http get 请求上创建 promise,但下面的代码(确切地说是 return this.http.get(url)
行给了我错误:
error TS2346: Supplied parameters do not match any signature of call target.
在我的服务中,我有方法isLoggedIn
isLoggedIn(): Promise<Object>
return this.http.get('/some/path')
.map((res: Response) => res.json())
.toPromise();
然后我想在我的组件中使用它,像这样:
onInit()
this.login.isLoggedIn()
.then((data: any) =>
if (data.hasOwnProperty('status') && data.status === 401)
this.router.navigate(['/Login']);
else
this.router.navigate(['/Home'])
);
我正在寻找如何使用 http 请求并以正确的方式承诺,但我找不到任何好的描述。
【问题讨论】:
【参考方案1】:快速浏览 Angular 源代码:
static toPromise(obj: Observable<any>): Promise<any> return (<any>obj).toPromise();
显示toPromise
方法应该收到Observable<any>
(您的电话是:toPromise()
)
我猜这就是错误的原因
【讨论】:
所以我应该将参数放入 toPromise() 方法中,但实际上我不知道在 http.get 请求之后应该放什么。 A2 的文档现在很差:/ 我正在通过互联网寻找解决方案 我也会寻找这个。为什么不坚持使用 Observables?以上是关于错误 TS2346:提供的参数与调用目标的任何签名都不匹配的主要内容,如果未能解决你的问题,请参考以下文章
Typescript 编译器错误 - 提供的参数与调用目标的任何签名都不匹配
Angular2 - 提供的参数与调用目标的任何签名都不匹配
TS2351:不能将“new”与类型缺少调用或构造签名的表达式一起使用。角度 8