8

你将如何在 TypeScript 中声明一个回调数组?

单个回调如下所示:

var callback:(param:string)=>void = function(param:string) {};

所以一个回调数组应该是这样的:

var callback:(param:string)=>void[] = [];

但是,这会产生歧义,因为我可能指的是回调数组,或者是返回空数组的单个回调。

在 TypeScript 操场上,它认为它是一个空数组。所以,我的下一个想法是将它用括号括起来:

var callback:((param:string)=>void)[] = [];

但这也行不通。

还有其他想法吗?

4

1 回答 1

17

您需要使用完整的类型文字语法形式,如下所示:

var callback:{(param:string): void;}[] = [];

这有点丑陋;如果你喜欢,你可以先给它起个名字:

interface fn {
    (param: string): void;
}
var callback2: fn[] = [];
于 2013-03-27T22:30:04.450 回答