在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

鲨鱼

我正在尝试T3在下面的示例中正确推断出的类型,但仅显示为unknown我无法理解T2在调用时如何正确推断基本类型Testing.testIt,但无法理解它扩展的类的类型参数(T3)。这是正在运行的示例我试图弄清楚该infer关键字在这里是否有用,但是我看不出它如何适合这个关键字。

export interface Type<T> extends Function {
    new (...args: any[]): T;
}

class GenericClass<T> {
}

class ChildClass extends GenericClass<string> {

}

class Testing {
    static testIt<T3, T2 extends GenericClass<T3>>(testClass: Type<T2>): T3 {
      console.log('testIt called');
      return '' as any;
    }

    static testIt2(val: string): void {
      console.log(val);
    }
}

const result = Testing.testIt(ChildClass);
Testing.testIt2(result);
杰夫·梅卡多(Jeff Mercado)

您将需要定义一个帮助程序来提取类型:

type ExtractGenericClassType<T> = T extends GenericClass<infer TInner> ? TInner : never;

class Testing {
    static testIt<T extends GenericClass<any>>(testClass: Type<T>): ExtractGenericClassType<T> {
      ...
    }
}

此外,您需要确保您的泛型类实际上使用了泛型类型参数,否则将无法正常工作。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c#中具有多个类型参数的泛型方法

来自分类Dev

具有类型依赖参数的 TypeScript 泛型方法

来自分类Dev

具有多个类型参数的泛型推断类型

来自分类Dev

如何在扩展方法中获取“ this”参数的泛型类型参数?

来自分类Dev

如何在扩展方法中获取“ this”参数的泛型类型参数?

来自分类Dev

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

来自分类Dev

如何从包含泛型参数的Type中获取“基本”类型?

来自分类Dev

在 TypeScript 中从具有类型参数的类型中获取类型参数的类型

来自分类Dev

如何在泛型方法中引用类型参数的值

来自分类常见问题

如何检查两个结构在Swift中是否具有相同的泛型参数类型?

来自分类Dev

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

来自分类Dev

如何检查两个结构在Swift中是否具有相同的泛型参数类型?

来自分类Dev

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

来自分类Dev

当泛型参数具有多种数据类型时,如何在rust中实现泛型?

来自分类Dev

如何在Kotlin中获取经过修饰的泛型参数的实际类型参数?

来自分类Dev

TypeScript中参数类型和泛型之间的区别

来自分类Dev

如何获取泛型方法的每个参数的类型

来自分类Dev

如何在 Roslyn 中检查方法参数类型/返回类型是否为泛型?

来自分类Dev

类型不接受泛型中的参数

来自分类Dev

Haxe中泛型类型参数的构造

来自分类Dev

捕获映射类型中的泛型参数

来自分类Dev

在集合中存储具有不同泛型类型参数的项目

来自分类Dev

Kotlin 中具有两个类型参数的泛型类

来自分类Dev

TypeScript泛型:React中具有联合类型的道具

来自分类Dev

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

来自分类Dev

TypeScript泛型:React中具有联合类型的道具

来自分类Dev

检查对象是否是具有多个类型参数的泛型类型

来自分类Dev

Java泛型:方法声明参数中的类型扩展

来自分类Dev

无法匹配方法参数中的泛型类型

Related 相关文章

  1. 1

    c#中具有多个类型参数的泛型方法

  2. 2

    具有类型依赖参数的 TypeScript 泛型方法

  3. 3

    具有多个类型参数的泛型推断类型

  4. 4

    如何在扩展方法中获取“ this”参数的泛型类型参数?

  5. 5

    如何在扩展方法中获取“ this”参数的泛型类型参数?

  6. 6

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

  7. 7

    如何从包含泛型参数的Type中获取“基本”类型?

  8. 8

    在 TypeScript 中从具有类型参数的类型中获取类型参数的类型

  9. 9

    如何在泛型方法中引用类型参数的值

  10. 10

    如何检查两个结构在Swift中是否具有相同的泛型参数类型?

  11. 11

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

  12. 12

    如何检查两个结构在Swift中是否具有相同的泛型参数类型?

  13. 13

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

  14. 14

    当泛型参数具有多种数据类型时,如何在rust中实现泛型?

  15. 15

    如何在Kotlin中获取经过修饰的泛型参数的实际类型参数?

  16. 16

    TypeScript中参数类型和泛型之间的区别

  17. 17

    如何获取泛型方法的每个参数的类型

  18. 18

    如何在 Roslyn 中检查方法参数类型/返回类型是否为泛型?

  19. 19

    类型不接受泛型中的参数

  20. 20

    Haxe中泛型类型参数的构造

  21. 21

    捕获映射类型中的泛型参数

  22. 22

    在集合中存储具有不同泛型类型参数的项目

  23. 23

    Kotlin 中具有两个类型参数的泛型类

  24. 24

    TypeScript泛型:React中具有联合类型的道具

  25. 25

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

  26. 26

    TypeScript泛型:React中具有联合类型的道具

  27. 27

    检查对象是否是具有多个类型参数的泛型类型

  28. 28

    Java泛型:方法声明参数中的类型扩展

  29. 29

    无法匹配方法参数中的泛型类型

热门标签

归档