打字稿中的通用类型变量约束

时间:2019-03-02 05:18:07

标签: typescript generics

我正在寻找以下与打字稿对应的c#语法

public abstract class PBaseHierarchical<T> : PBase where T : PBaseHierarchical<T>
    {
...
}

我只在打字稿中找到约束“ extends”:

export abstract class PBaseHierarchical<T extends PBaseHierarchical<T>> extends PBase {
...
}

但是根据我的理解,“扩展”表示T应该继承自PBaseHierarchical。我想要的是T是PBaseHierarchical类型的。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

类型约束中的

extends实际上涵盖了这两个方面:

  

T的类型为PBaseHierarchical T会“扩展” PBaseHierarchical

与C#中的T:PBaseHierarchical几乎相同。

还要注意,在Typescript中对类型进行结构比较。