Typescript ES6箭头语法

时间:2018-06-12 10:15:31

标签: angular typescript

canDeactivate1& amp;在下面的打字稿界面中的canDeactivate2?如何考虑这些功能?

export interface CanComponentDeactivate
{
    canDeactivate1 : ()=> Observable<boolean> | Promise<boolean> | boolean;
    canDeactivate2 (): Observable<boolean> | Promise<boolean> | boolean;
}

如何在JavaScript中编写相同的功能?

1 个答案:

答案 0 :(得分:0)

第二个基本上是第一个的快捷方式(好吧,不多)。

表达式()=> Observable<boolean> | Promise<boolean> | boolean是一个函数的类型声明,它不需要参数并返回一个observable,一个promise或一个boolean。您可以在预期类型的​​任何位置使用此类声明:

let foo: ()=> Observable<boolean> | Promise<boolean> | boolean;
foo = 1; //doesn't work, foo has to be a function
foo = () => 1; //doesn't work, we are not allowed to return a number
foo = () => true; // works
foo = function() { return true }; //works

因为对象上的函数通常用作方法,所以接口具有类似于类中方法声明的特殊语法。 canDeactivate2 (): Observable<boolean> | Promise<boolean> | boolean看起来像一个没有正文的方法,这更符合其他语言的含义。