【问题标题】:TypeScript Class Generic Parameter ConstraintsTypeScript 类通用参数约束
【发布时间】:2018-05-15 05:03:48
【问题描述】:

我正在尝试使用受约束的泛型参数声明一个 TypeScript 类。在 C# 中,将编译以下代码:

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

什么是 TypeScript 等价物?

【问题讨论】:

    标签: typescript


    【解决方案1】:

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

    export class NewClass<T extends BaseClass> {
    }
    

    虽然您从带有implements 的接口派生类,但对于泛型约束却不是这样,这使得这段代码成为可能:

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

    【讨论】:

      【解决方案2】:

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

      所以你的例子相当于:

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

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

      【讨论】:

      • 咆哮:我发现有关泛型的文档以及一般的 TypeScript 文档很难解析。这就是为什么我最终发布了这个问题——如果你访问 c# 页面,很容易知道如何做到这一点。在 TypeScript 中不是这样。
      猜你喜欢
      • 1970-01-01
      • 2020-02-28
      • 2017-05-19
      • 2018-03-30
      • 2018-08-23
      • 2021-01-25
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多