TypeScript函数数组

Edu*_*tru 8 arrays types function type-alias typescript

我想知道如何在TypeScript中声明一个类型化函数数组.

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

private func: () => void;
Run Code Online (Sandbox Code Playgroud)

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

private funcs: () => void  [];
Run Code Online (Sandbox Code Playgroud)

这显然是做我想要的错误方法,因为编译器认为这是一个返回空洞数组的函数.

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

private funcs2: (  () => void  ) [];
Run Code Online (Sandbox Code Playgroud)

导致编译器错误.

有没有人知道如何实现这一目标?

Rya*_*ugh 12

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

private funcs: { (): void; }[];
Run Code Online (Sandbox Code Playgroud)

如果看起来太怪异,你也可以创建一个界面:

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

class etc {
    private funcs: foo[];
}
Run Code Online (Sandbox Code Playgroud)