未知的Typescript构造

时间:2015-05-29 10:22:26

标签: typescript

在另一个thread中,我看到了这个我不完全理解的Typescript语句:

export var SuperUser = (id:Number):ISuperUser => {
        return new SuperUserImpl(id);       
}

我理解SuperUser是一个函数,它需要一个id:Number参数来执行括号{...}之间的正文。

但我不知道:ISuperUser部分是什么意思。

这是什么意思?如何正确阅读这一行?

1 个答案:

答案 0 :(得分:2)

简而言之,它意味着函数返回ISuperUser兼容的类型。

export var SuperUser = (id: /* parameter type */ Number): /* return type */ ISuperUser => {
    return new SuperUserImpl(id);       
}

如果您尝试在函数体中return 5,则会看到编译警告,因为NumberISuperUser兼容。

附加说明

有时,=>用于声明返回类型。这仅在:会引起混淆时使用。例如,在下面的界面中。

代码:

var example1 = function (param: string): number {
    return 1;
}

interface Example2 {
    method: (param: string) => number;
}

这是一个人为的例子,因为你可以在界面中使用method2(param: string): number;更清晰地描述它 - 但是在使用内联类型定义时你会发现其他类似的例子。如果你搞砸了,编译器通常会给你一个警告=> expected