首页 > 解决方案 > 如何将泛型类型传递给子函数?

问题描述

const foo = <T>(arg1: T): T => {
  return arg1
}

export type Bar = {
  foo: typeof foo
}

export const bar = <T>(): Bar => {
  return { foo }
}

bar<number>()

我需要根据最后一条语句中的声明将 Generic Tfrom传递给barto foo,这样这T将是fooie 的参数类型和返回类型;number在这种情况下。我怎样才能做到这一点?

请注意 bar Bar 是模块的导出成员。

标签: typescripttypescript-generics

解决方案


请注意,在编写此答案后问题已更改。


由于您的函数没有bar返回类型注释,因此使用声明的. 如果您想要绑定到 的类型参数的较弱类型,那么您可以在返回类型注释中指定它:{foo<T>(arg1: T): T}Tfoo{foo(arg1: T): T}Tbar

const bar = <T>(): {foo(x: T): T} => {
  return { foo }
}

游乐场链接


推荐阅读