我发现有几种方法可以表示函数属性:
var f1: (...args:any[]) => any;
var f2: { (...args:any[]):any; }
var f3: Function;
我的理解是f1
是一个函数类型,f2
是一个函数接口,f3
是一个类型。它们之间是否有任何区别,或者它们本质上是不同的TypeScript机制来说同样的事情?否则,你何时会使用其中一个?
答案 0 :(得分:1)
这些之间是否有任何区别,或者说TypeScript的本质上是不同的机制
一切都是等同的。基本上Function
是最不安全的(...args:any[]) => any;
基本上捕获相同的内容(我更喜欢Function
表示您不保证任何安全性。)
两者之间:
var f1: (...args:any[]) => any;
var f2: { (...args:any[]):any; }
首先只是第二种语法的简写语法。存在第二种语法,允许您声明重载,这是第一种语法无法完成的。