一个types化的函数数组

我正在努力弄清楚在TypeScript中是否可以声明一个静态types的函数数组。

例如,我可以这样做:

foo: (data:string) => void = function (data) {}; 

但是,如果我想foo​​是一个函数的数组,并且不返回任何内容,我该怎么做?

 foo: (data:string) => void [] = []; 

不起作用,因为TypeScript认为它是一个函数,它接受一个string并返回一个void数组,它似乎并不喜欢我试图将函数包装在括号中。

有任何想法吗?

:感谢下面的mohamed,下面是一个在TypeScript Playground中工作的例子:

 class whatever { public foo: { (data: string): void; }[] = []; dofoo() { for (var i=0; i < this.foo.length; i++) { this.foo[i]("test"); } } } var d = new whatever(); d.foo.push(function(bar){alert(bar)}) d.foo.push(function(bar){alert(bar.length.toString())}) d.dofoo(); 

你可以在语言规范部分find这个3.5.5:

 foo: { (data: string): void; } [] 

其他(更新,更可读)使用粗箭头键入函数数组的方法:

 let foo: Array<(data: string) => void>; let bar: ((data: string) => void)[];