如何将具有泛型的函数类型应用于函数

克里斯·德拉克特(Chris Drackett)

我有以下类型:

type AllRoutes = {
  Home: undefined
  Page: { id: string }
}

type NavFunction<RouteName extends keyof AllRoutes> = (
  ...args: AllRoutes[RouteName] extends undefined
    ? [RouteName]
    : [RouteName, AllRoutes[RouteName]]
) => void

如果我将这种类型直接放在这样的函数上,则可以按预期工作:

export function navigate<RouteName extends keyof AllRoutes>(
  ...args: AllRoutes[RouteName] extends undefined
    ? [RouteName]
    : [RouteName, AllRoutes[RouteName]]
) {
  ...
}

navigate('Home') // works!
navigate('Page', {id: 1}) // works!
navigate('Page') // Expected 2 args

我遇到的问题是我想将此类型应用于多个功能(每个功能用于不同的平台)。我似乎无法弄清楚如何将第一种类型应用于函数并使它像我刚刚发布的“直接”示例那样工作。

威克斯

您可以为该args部分创建助手类型也许还为keyof AllRoutes创建一个类型

type RouteNames = keyof AllRoutes;
type GetArgs<RouteName extends RouteNames> = AllRoutes[RouteName] extends undefined
    ? [RouteName]
    : [RouteName, AllRoutes[RouteName]];

export function navigate<RouteName extends RouteNames>(
  ...args: GetArgs<RouteName>
) {
  ...
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将复杂的泛型方法应用于通配符泛型类型的类?

来自分类Dev

如何将jQuery函数应用于具有相同类的所有元素?

来自分类Dev

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

来自分类Dev

在Julia中,如何将函数应用于具有数组的数据框?

来自分类Dev

如何将array_map应用于PHP中具有更多参数的函数?

来自分类Dev

当属性类型包括泛型类型时,如何将泛型JsonConverter应用于泛型类的属性?

来自分类Dev

如何将具有不同参数类型的不同函数应用于在data.table上计算结果

来自分类Dev

有没有一种方法可以将Maybe构造函数应用于具有泛型的每个记录字段?

来自分类Dev

如何将函数(动画)仅应用于具有相同类名的许多类中的选定类

来自分类Dev

如何将函数应用于具有相同类的所有新元素,但仅适用于新创建的元素?(JS函数)

来自分类Dev

如何将多态函数应用于具体类型?

来自分类Dev

如何将函数应用于所有字段(所有行的所有列)

来自分类Dev

如何将多个函数应用于numpy数组?

来自分类Dev

如何将函数(BigramCollocationFinder)应用于Pandas DataFrame

来自分类Dev

如何将函数应用于每个“ foreach”结果?

来自分类Dev

如何将LinEst函数应用于行?

来自分类Dev

如何将函数调用应用于别名?

来自分类Dev

jQuery:如何将函数应用于哈希值?

来自分类Dev

如何将数学函数应用于节点值?

来自分类Dev

熊猫:如何将函数应用于不同的列

来自分类Dev

如何将函数应用于数组的索引?

来自分类Dev

如何将 NTILE 函数应用于 SQL 列

来自分类Dev

Java 构造函数中的泛型错误不能应用于给定类型

来自分类Dev

创建具有泛型类型的函数

来自分类Dev

如何将函数应用于数组中的所有元素(在C ++模板类中)

来自分类Dev

如何将聚合函数应用于Pandas中数据透视表的所有列

来自分类Dev

如何将函数应用于选定单元格中的所有值?

来自分类Dev

如何将函数应用于矩阵中的所有向量对

来自分类Dev

如何将函数应用于带有 purrr 的列对?

Related 相关文章

  1. 1

    如何将复杂的泛型方法应用于通配符泛型类型的类?

  2. 2

    如何将jQuery函数应用于具有相同类的所有元素?

  3. 3

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

  4. 4

    在Julia中,如何将函数应用于具有数组的数据框?

  5. 5

    如何将array_map应用于PHP中具有更多参数的函数?

  6. 6

    当属性类型包括泛型类型时,如何将泛型JsonConverter应用于泛型类的属性?

  7. 7

    如何将具有不同参数类型的不同函数应用于在data.table上计算结果

  8. 8

    有没有一种方法可以将Maybe构造函数应用于具有泛型的每个记录字段?

  9. 9

    如何将函数(动画)仅应用于具有相同类名的许多类中的选定类

  10. 10

    如何将函数应用于具有相同类的所有新元素,但仅适用于新创建的元素?(JS函数)

  11. 11

    如何将多态函数应用于具体类型?

  12. 12

    如何将函数应用于所有字段(所有行的所有列)

  13. 13

    如何将多个函数应用于numpy数组?

  14. 14

    如何将函数(BigramCollocationFinder)应用于Pandas DataFrame

  15. 15

    如何将函数应用于每个“ foreach”结果?

  16. 16

    如何将LinEst函数应用于行?

  17. 17

    如何将函数调用应用于别名?

  18. 18

    jQuery:如何将函数应用于哈希值?

  19. 19

    如何将数学函数应用于节点值?

  20. 20

    熊猫:如何将函数应用于不同的列

  21. 21

    如何将函数应用于数组的索引?

  22. 22

    如何将 NTILE 函数应用于 SQL 列

  23. 23

    Java 构造函数中的泛型错误不能应用于给定类型

  24. 24

    创建具有泛型类型的函数

  25. 25

    如何将函数应用于数组中的所有元素(在C ++模板类中)

  26. 26

    如何将聚合函数应用于Pandas中数据透视表的所有列

  27. 27

    如何将函数应用于选定单元格中的所有值?

  28. 28

    如何将函数应用于矩阵中的所有向量对

  29. 29

    如何将函数应用于带有 purrr 的列对?

热门标签

归档