【问题标题】:Defining typescript generics with type safety使用类型安全定义 typescript 泛型
【发布时间】:2013-07-15 13:37:06
【问题描述】:

您可以像使用 c# 一样定义具有安全类型的泛型吗?

例如

public bool Foo<T>() where T : struct { /* */ }

Typescript 现在有泛型,但我可以执行类似的操作吗?

谢谢。

【问题讨论】:

    标签: generics typescript


    【解决方案1】:

    好吧,看来你可以这样做:

    Foo<T extends IBar>() { /* */ }
    

    这似乎使所有调用都需要 T 实现 IBar

    【讨论】:

    • +1 - 恰到好处。这取自泛型的 Java 实现 - extends 关键字用于限制接口或类。
    • 但它似乎还没有强制执行任何操作。
    • 注意,如果你想通过接口进行约束,你使用extends关键字而不是implements。例如Foo&lt;T extends IBar&gt;
    • 请注意,类型不需要“实现” IBar 接口,它必须与它兼容。
    【解决方案2】:

    如果您不想创建额外的类/接口,例如,您可以执行以下操作:

    Foo&lt;T extends{ id: string | number }&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 2019-05-30
      • 2019-07-23
      • 2021-12-06
      相关资源
      最近更新 更多