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

迈克

我有一个想法,有一个代码可以根据方法的泛型类型自动检查参数类型。但是参数的类型应该与给定泛型类型的具体属性的类型相同。让我给你举个例子。

假设我有这些接口:

interface IMessage {
    name: string,
    payload: any
}

interface IConcreteMessage {
    name: "concreteMessage",
    payload: string
}

我想通过这种方式调用一些方法接受 IMessage 作为泛型参数:

someobject.genericMethod<IConcreteMessage>(78)

现在的问题是,应该如何声明该方法,以便编译器为给定参数抛出类型错误?

public genericMethod<T extends IMessage>(payload: ??) {}

第二件事 - 我能否以某种方式仅从给定的泛型参数中提取方法中的“concreteMessage”值?

提香·切尔尼科娃-德拉戈米尔

您可以使用类型查询来实现此目的:

genericMethod<T extends IMessage>(payload: T['payload']) { }

someobject.genericMethod<IConcreteMessage>(78) // will be an error

您可以在运行时从文字字符串类型获取字符串,您需要将字符串值作为参数传递。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

泛型类型推断的 Typescript 泛型

来自分类Dev

TypeScript-如何从方法的参数推断类的泛型?

来自分类Dev

使用 TypeScript checkJs 在 JSDoc 中扩展泛型类型的方法?

来自分类Dev

TypeScript泛型:参数类型推断

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Typescript从具有泛型类型的对象索引调用函数

来自分类Dev

是否可以从 Typescript 中的非构造函数方法参数推断泛型类类型?

来自分类Dev

TypeScript 复杂的泛型方法

来自分类Dev

具有不同类型泛型参数的方法的泛型类

来自分类Dev

Typescript:泛型,使用泛型扩展类型

来自分类Dev

返回泛型类型的泛型方法

来自分类Dev

有没有一种方法可以从TypeScript中的泛型类型推断出泛型类型?

来自分类Dev

Typescript泛型:从函数参数的类型推断类型?

来自分类Dev

具有参数类型限制的泛型不能传递给具有非泛型参数的方法

来自分类Dev

如何在Typescript中声明泛型承诺,以便当泛型类型为“ <void>”时,其方法之一不带参数?

来自分类Dev

Typescript:从泛型类型获取文字值

来自分类Dev

Typescript中的默认泛型类型派生

来自分类Dev

TypeScript中泛型的深度条件类型

来自分类Dev

通过泛型缩小TypeScript索引类型

来自分类Dev

泛型类型的TypeScript函数重载

来自分类Dev

泛型类型断言(TypeScript 高级)

来自分类Dev

TypeScript typeof 泛型类的类型

来自分类Dev

TypeScript 中的泛型类型继承

来自分类Dev

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

来自分类Dev

无法在不丢失对象键类型的情况下将泛型引入Typescript方法

来自分类Dev

Scala:具有参数或泛型类型参数的方法,该方法返回Future

Related 相关文章

  1. 1

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

  2. 2

    泛型类型推断的 Typescript 泛型

  3. 3

    TypeScript-如何从方法的参数推断类的泛型?

  4. 4

    使用 TypeScript checkJs 在 JSDoc 中扩展泛型类型的方法?

  5. 5

    TypeScript泛型:参数类型推断

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

    Typescript从具有泛型类型的对象索引调用函数

  10. 10

    是否可以从 Typescript 中的非构造函数方法参数推断泛型类类型?

  11. 11

    TypeScript 复杂的泛型方法

  12. 12

    具有不同类型泛型参数的方法的泛型类

  13. 13

    Typescript:泛型,使用泛型扩展类型

  14. 14

    返回泛型类型的泛型方法

  15. 15

    有没有一种方法可以从TypeScript中的泛型类型推断出泛型类型?

  16. 16

    Typescript泛型:从函数参数的类型推断类型?

  17. 17

    具有参数类型限制的泛型不能传递给具有非泛型参数的方法

  18. 18

    如何在Typescript中声明泛型承诺,以便当泛型类型为“ <void>”时,其方法之一不带参数?

  19. 19

    Typescript:从泛型类型获取文字值

  20. 20

    Typescript中的默认泛型类型派生

  21. 21

    TypeScript中泛型的深度条件类型

  22. 22

    通过泛型缩小TypeScript索引类型

  23. 23

    泛型类型的TypeScript函数重载

  24. 24

    泛型类型断言(TypeScript 高级)

  25. 25

    TypeScript typeof 泛型类的类型

  26. 26

    TypeScript 中的泛型类型继承

  27. 27

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

  28. 28

    无法在不丢失对象键类型的情况下将泛型引入Typescript方法

  29. 29

    Scala:具有参数或泛型类型参数的方法,该方法返回Future

热门标签

归档