打字稿:如何从泛型函数类型中提取返回类型

时间:2021-05-28 13:25:37

标签: typescript typescript-generics

是否可以提取泛型函数类型的返回类型?这是我想到的一个例子。

type Generic = <T = void>() => T[] | string
type Return = ReturnType<Generic<number>>; //Error Type 'Generic' is not generic.
//Expecting to get 'number[] | string' type

Playground Link

1 个答案:

答案 0 :(得分:0)

有点笨拙,但应该这样做:

type Generic = <T = void>() => T[] | string
type ReplaceUnknown<T, B> = T extends unknown[] ? B[] : T

type Return = ReplaceUnknown<ReturnType<Generic>, number>

TS playground