如何约束泛型类型以使其具有new()?

梅兰德

我想要一个像这样的功能:

createEntity<TEntity>(): TEntity {
    return new TEntity();
}

在C#中,我们可以编写:

void TEntity CreateEntity<TEntity>() where TEntity : new()

如何在TypeScript中做到这一点?

托斯克

手册中显示的执行此操作的唯一方法是将要初始化的类作为参数发送给factory方法,并使用new关键字描述其构造函数

function factory<T>(type: { new (): T }): T {
    return new type();
}

class SomeClass { }

let result = factory(SomeClass);

结果将是类型SomeClass的的。

将根据工厂方法中定义的接口对类的构造函数进行类型检查。

如果要初始化在其构造函数中带有参数的类,则必须在提供给factory方法的接口中进行指定。

function factory<T>(type: { new (...args): T }, ...args): T {
    return new type(...args);
}


class SomeClass {
    constructor(name: string) { }
}

let a = factory(SomeClass, 'John Doe');

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有新类型约束的泛型构造函数

来自分类Dev

C#从具有约束的泛型推断类型

来自分类Dev

Typescript中具有泛型的子类型约束

来自分类Dev

具有类型约束的泛型的C#nameof

来自分类Dev

Swift 转换为具有约束的泛型类型

来自分类Dev

如何从具有基本类型约束的泛型方法获取typeof(T)?

来自分类Dev

如何将主构造函数添加到具有类型约束的泛型类?

来自分类Dev

如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

来自分类Dev

如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

来自分类Dev

使泛型类的函数仅接受具有相同泛型类型但受更多约束的参数

来自分类Dev

为什么实现具有类型约束的泛型接口的泛型类需要重复这些约束?

来自分类Dev

如何在Swift中从带有类型别名的协议中引用具有约束的泛型类?

来自分类Dev

为什么在具有可比约束的泛型函数中丢失泛型类型信息?

来自分类Dev

如何实现具有泛型接口约束的泛型类?

来自分类Dev

具有静态成员约束的泛型类型上的类型推断失败

来自分类Dev

具有对其他类型参数的约束的类型参数的泛型推断

来自分类Dev

如何为一个类型设置约束,使其必须为另一个泛型类型

来自分类Dev

如何实现具有泛型类型的接口?

来自分类Dev

如何实现具有泛型类型的接口?

来自分类Dev

如何继承具有不同泛型返回类型的方法

来自分类Dev

具有多个参数的泛型类中的从属类型约束

来自分类Dev

具有两个类型约束和接口实现的泛型类

来自分类Dev

具有类型约束的泛型类上的F#模式匹配

来自分类Dev

为什么泛型 T 仅在具有约束时才被推断为文字类型?

来自分类Dev

如何使用已知类型作为参数创建具有泛型的泛型类?

来自分类Dev

具有泛型类型的泛型集合生成

来自分类Dev

具有泛型类型的泛型集合生成

来自分类Dev

new()的泛型类型约束和抽象基类

来自分类Dev

具有多个特征的泛型类型

Related 相关文章

  1. 1

    具有新类型约束的泛型构造函数

  2. 2

    C#从具有约束的泛型推断类型

  3. 3

    Typescript中具有泛型的子类型约束

  4. 4

    具有类型约束的泛型的C#nameof

  5. 5

    Swift 转换为具有约束的泛型类型

  6. 6

    如何从具有基本类型约束的泛型方法获取typeof(T)?

  7. 7

    如何将主构造函数添加到具有类型约束的泛型类?

  8. 8

    如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

  9. 9

    如何在Scala中设置绑定的类型参数以使数字具有泛型功能?

  10. 10

    使泛型类的函数仅接受具有相同泛型类型但受更多约束的参数

  11. 11

    为什么实现具有类型约束的泛型接口的泛型类需要重复这些约束?

  12. 12

    如何在Swift中从带有类型别名的协议中引用具有约束的泛型类?

  13. 13

    为什么在具有可比约束的泛型函数中丢失泛型类型信息?

  14. 14

    如何实现具有泛型接口约束的泛型类?

  15. 15

    具有静态成员约束的泛型类型上的类型推断失败

  16. 16

    具有对其他类型参数的约束的类型参数的泛型推断

  17. 17

    如何为一个类型设置约束,使其必须为另一个泛型类型

  18. 18

    如何实现具有泛型类型的接口?

  19. 19

    如何实现具有泛型类型的接口?

  20. 20

    如何继承具有不同泛型返回类型的方法

  21. 21

    具有多个参数的泛型类中的从属类型约束

  22. 22

    具有两个类型约束和接口实现的泛型类

  23. 23

    具有类型约束的泛型类上的F#模式匹配

  24. 24

    为什么泛型 T 仅在具有约束时才被推断为文字类型?

  25. 25

    如何使用已知类型作为参数创建具有泛型的泛型类?

  26. 26

    具有泛型类型的泛型集合生成

  27. 27

    具有泛型类型的泛型集合生成

  28. 28

    new()的泛型类型约束和抽象基类

  29. 29

    具有多个特征的泛型类型

热门标签

归档