Generics 定义基回调类型的Typescript泛型基类

Generics 定义基回调类型的Typescript泛型基类,generics,typescript,typescript2.0,Generics,Typescript,Typescript2.0,我正在尝试创建一个通用基本事件类: class BaseEvent<T extends { (args?: any[]): void }> { addEventListener(listener: T): { (): void } { return () => { }; } } 您正在将args声明为数组类型。您必须将其作为数组传递 class ExtraSpecialEvent extends BaseEvent<{ (foo:

我正在尝试创建一个通用基本事件类:

class BaseEvent<T extends { (args?: any[]): void }> {
    addEventListener(listener: T): { (): void } {
        return () => { };
    }
}

您正在将
args
声明为数组类型。您必须将其作为数组传递

class ExtraSpecialEvent
    extends BaseEvent<{ (foo: string[]): void }> {

}
类外特殊
扩展BaseEvent{
}

好的,是的,你是对的。我将把这个标记为答案。。。虽然事实证明我问错了问题。。。我真的希望能够指定0个或更多参数。。。这个答案让我走上了正确的道路。@Lucas为此,您可以使用
rest参数。请参见这里的示例
class BaseEvent<T extends { (...args: any[]): void }> {
    addEventListener(listener: T): { (): void } {
        return () => { };
    }
}
class ExtraSpecialEvent
    extends BaseEvent<{ (foo: string[]): void }> {

}