强制通用类型匹配功能定义

时间:2019-04-03 03:25:49

标签: typescript generics

是否可以强制泛型类型不仅为Function类型,还可以匹配特定的函数定义?

例如,我想出的最接近的方法是:

class MyClass<T = (S : any, E : EventArgs) => void> {
    ...
}

这当然可以,但是它不会强制使用此类型,它只是默认类型。我都可以做

let myClass = new MyClass<string>();

let myClass = newClass<(any, number) => void>();

我都不希望两者都可能。我希望类型始终与(any, EventArgs) => void的函数定义匹配。

在TypeScript中可以吗?

1 个答案:

答案 0 :(得分:2)

是的,有可能。要定义constraint extends关键字:

class MyClass<T extends (S: any, E: EventArgs) => void> {
     // ...
}

您已经知道,=为泛型类型参数指定了default