我想知道如何在TypeScript中声明一个类型化函数数组。
例如,假设我有一个字段可以保存一个没有参数的函数并返回void:
private func: () => void;
现在,我想要一个可以容纳一系列此类函数的字段:
private funcs: () => void [];
这显然是做我想要的错误方法,因为编译器认为这是一个返回空洞数组的函数。
尝试使用括号隔离内联原型声明,如下所示:
private funcs2: ( () => void ) [];
导致编译器错误。
有没有人知道如何实现这一目标?
答案 0 :(得分:11)
您需要使用完整类型的文字语法而不是=>
简写:
private funcs: { (): void; }[];
如果看起来太奇怪,你也可以创建一个界面:
// (elsewhere at top-level)
interface foo {
(): void;
}
class etc {
private funcs: foo[];
}