canDeactivate1& amp;在下面的打字稿界面中的canDeactivate2?如何考虑这些功能?
export interface CanComponentDeactivate
{
canDeactivate1 : ()=> Observable<boolean> | Promise<boolean> | boolean;
canDeactivate2 (): Observable<boolean> | Promise<boolean> | boolean;
}
如何在JavaScript中编写相同的功能?
答案 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
看起来像一个没有正文的方法,这更符合其他语言的含义。