给出一个函数数组
const arrayOfFunctions = [
() => 1,
() => 2,
() => 3,
]
我可以这样获得第一个返回类型:
type FirstReturnType = ReturnType<typeof x[0]>
我试图在typeof x
上“映射”并返回所有类似的类型:
这种类型怎么了?
type ReturnTypeArray<M extends Array<Function>> = {
[K in M]: ReturnType<M[K]>
}
然后我可以消除重复并创建一种类型。
export type UnionToIntersection<U> =
(U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never
答案 0 :(得分:1)
我错过了keyof
。
type ReturnTypeArray<M extends Array<Function>> = {
[K in keyof M]: M[K] extends ((...args: any[]) => any) ? ReturnType<M[K]> : never
}