【发布时间】:2012-09-25 22:12:54
【问题描述】:
我正在努力弄清楚是否可以在 TypeScript 中声明一个静态类型的函数数组。
例如,我可以这样做:
foo: (data:string) => void = function (data) {};
但是如果我希望 foo 成为一个接受字符串但不返回任何内容的函数数组,我该怎么做呢?
foo: (data:string) => void [] = [];
不起作用,因为 TypeScript 认为它是一个接受字符串并返回 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();
【问题讨论】:
标签: typescript