使用类型安全定义 typescript 泛型
Posted
技术标签:
【中文标题】使用类型安全定义 typescript 泛型【英文标题】:Defining typescript generics with type safety 【发布时间】:2013-07-15 13:37:06 【问题描述】:您可以像使用 c# 一样定义具有安全类型的泛型吗?
例如
public bool Foo<T>() where T : struct /* */
Typescript 现在有泛型,但我可以执行类似的操作吗?
谢谢。
【问题讨论】:
【参考方案1】:好吧,看来你可以这样做:
Foo<T extends IBar>() /* */
这似乎使所有调用都需要 T 实现 IBar
。
【讨论】:
+1 - 恰到好处。这取自泛型的 Java 实现 -extends
关键字用于限制接口或类。
但它似乎还没有强制执行任何操作。
注意,如果你想通过接口进行约束,你使用extends
关键字而不是implements
。例如Foo<T extends IBar>
。
@Tarion, it seems to work for me
请注意,类型不需要“实现” IBar 接口,它必须与它兼容。【参考方案2】:
如果您不想创建额外的类/接口,例如,您可以执行以下操作:
Foo<T extends id: string | number >
【讨论】:
以上是关于使用类型安全定义 typescript 泛型的主要内容,如果未能解决你的问题,请参考以下文章