【发布时间】:2017-07-07 05:15:11
【问题描述】:
我正在尝试创建一个通用的基事件类:
class BaseEvent<T extends { (args?: any[]): void }> {
addEventListener(listener: T): { (): void } {
return () => { };
}
}
我可以扩展指定限制回调的参数:
class ExtraSpecialEvent
extends BaseEvent<{ (foo: string): void }> {
}
但我似乎无法弄清楚语法。 Here is a playground demonstrating my problem.
知道如何做到这一点吗?
---- 更新----
正如@murat-k 在下面回答的那样,我的泛型要求一个数组...虽然这是我的问题,但它不是我的意思 。我的意图是允许 0 个或更多 any args。我的问题的解决方案是将泛型更改为:
class BaseEvent<T extends { (...args: any[]): void }> {
addEventListener(listener: T): { (): void } {
return () => { };
}
}
【问题讨论】:
标签: generics typescript typescript2.0