TypeScript中具有泛型类型参数的泛型类型的备选方案

TypeScript中具有泛型类型参数的泛型类型的备选方案,typescript,generics,typescript-generics,Typescript,Generics,Typescript Generics,假设我有两种类型的泛型函数,它们的返回类型不同。一个具有返回类型T,另一个具有返回类型T[]: type F1=(t:t)=>t 类型F2=(t:t)=>t[] 我想知道如何将这两种类型合并为一种泛型类型。我设想的方法是让新的泛型类型接受另一个泛型类型作为参数(如C++): //小心,前面是幻想打字脚本! //接受泛型类型R作为参数 //转换泛型函数的返回类型的步骤 类型F=(t:t)=>R //根据F定义F1和F2 类型Id=T F1型=F型 有关更多信息,请键入F2=F和a TypeScr

假设我有两种类型的泛型函数,它们的返回类型不同。一个具有返回类型
T
,另一个具有返回类型
T[]

type F1=(t:t)=>t
类型F2=(t:t)=>t[]
我想知道如何将这两种类型合并为一种泛型类型。我设想的方法是让新的泛型类型接受另一个泛型类型作为参数(如C++):

//小心,前面是幻想打字脚本!
//接受泛型类型R作为参数
//转换泛型函数的返回类型的步骤
类型F=(t:t)=>R
//根据F定义F1和F2
类型Id=T
F1型=F型
有关更多信息,请键入F2=F和a


TypeScript中的替代方案是什么?

一个简单的方法是使用:

type F=(t:t)=>R扩展了void[]?T[]:T
类型F1=F/(t:t)=>t
类型F2=F/(t:t)=>t[]
可通过以下方式实现更灵活的实施:

type R={Id:T,Array:T[]}

F型一种简单的方法是使用:

type F=(t:t)=>R扩展了void[]?T[]:T
类型F1=F/(t:t)=>t
类型F2=F/(t:t)=>t[]
可通过以下方式实现更灵活的实施:

type R={Id:T,Array:T[]}
F型