9

我想知道如何在 TypeScript 中声明类型函数数组。

例如,假设我有一个字段可以保存一个没有参数并返回 void 的函数:

private func: () => void;

现在,假设我想要一个可以容纳此类函数数组的字段:

private funcs: () => void  [];

这显然是错误的方法,因为编译器认为这是一个返回空数组的函数。

尝试用括号隔离内联原型声明,如下所示:

private funcs2: (  () => void  ) [];

导致编译器错误。

有谁知道如何做到这一点?

4

1 回答 1

17

您需要使用完整的类型文字语法而不是=>速记:

private funcs: { (): void; }[];

如果看起来太奇怪,您也可以制作一个界面:

// (elsewhere at top-level)
interface foo {
    (): void;
}

class etc {
    private funcs: foo[];
}
于 2013-02-02T16:14:21.150 回答