在另一个thread中,我看到了这个我不完全理解的Typescript语句:
export var SuperUser = (id:Number):ISuperUser => {
return new SuperUserImpl(id);
}
我理解SuperUser
是一个函数,它需要一个id:Number
参数来执行括号{...}
之间的正文。
但我不知道:ISuperUser
部分是什么意思。
这是什么意思?如何正确阅读这一行?
答案 0 :(得分:2)
简而言之,它意味着函数返回与ISuperUser
兼容的类型。
export var SuperUser = (id: /* parameter type */ Number): /* return type */ ISuperUser => {
return new SuperUserImpl(id);
}
如果您尝试在函数体中return 5
,则会看到编译警告,因为Number
与ISuperUser
兼容。
有时,=>
用于声明返回类型。这仅在:
会引起混淆时使用。例如,在下面的界面中。
代码:
var example1 = function (param: string): number {
return 1;
}
interface Example2 {
method: (param: string) => number;
}
这是一个人为的例子,因为你可以在界面中使用method2(param: string): number;
更清晰地描述它 - 但是在使用内联类型定义时你会发现其他类似的例子。如果你搞砸了,编译器通常会给你一个警告=> expected
。