【发布时间】:2016-09-23 15:52:21
【问题描述】:
我对 TypeScript 语法很陌生。像这样处理现有代码:
private checkUsername(username: FormControl): boolean {
return this.userService
.findUser(username.value)
.catch(error => this.displayError(error));
}
TypeScript linter 警告 参数 error 隐含类型为 any。很公平,但是当我尝试在粗箭头中添加我认为看起来像类型声明的内容时:
.catch(error:any => this.displayError(error));
linter 警告说它需要 , 代替 :。
我可以通过将参数和类型声明括在括号中来消除错误:
.catch((error:any) => this.displayError(error));
这是因为它期望使用前一种语法的速记参数列表(因此在以这种方式声明类型信息时括号是强制性的)?
(What's the meaning of "=>" in TypeScript? (Fat Arrow) 和 What's the meaning of "=>" (an arrow formed from equals & greater than) in JavaScript? 都不是特别有用。)
【问题讨论】:
-
这与 promise 没有任何关系,不是吗?我不确定为什么它的标题中有标签或单词...
-
@MikeMcCaughan 因为我以前没有这样做过,我不确定它是否与它在承诺链中有关。如果没有,这是有用的信息。谢谢。
标签: typescript ecmascript-6 es6-promise