TypeScript类通用参数约束

时间:2018-05-14 20:48:22

标签: typescript

我正在尝试使用约束泛型参数声明TypeScript类。在C#中,以下内容将编译:

public class NewClass<T> where T: BaseClass {
}

什么是TypeScript等价物?

2 个答案:

答案 0 :(得分:4)

您正在寻找extends关键字。您可以在generic参数之后立即使用它将其约束为指定类型的子类型。

所以你的例子的等价物是:

class NewClass<T extends BaseClass> {
    // Things...
}

您可以在documentation here中了解有关通用约束的更多信息。

答案 1 :(得分:4)

对于作为基础的类和接口,您必须像这样约束T

export class NewClass<T extends BaseClass> {
}

当您从具有implements的接口派生类时,对于通用约束也是如此,使得此代码成为可能:

export class NewClass<T extends BaseInterface> implements BaseInterface {
}