Typescript 将类型分配给泛型函数

Typescript 将类型分配给泛型函数,typescript,typescript-generics,Typescript,Typescript Generics,如果可能的话,我想通过为泛型函数指定一个公共类型来简化泛型函数 首先,我创建了一个减速器类型: type Reducer<C, B, R> = (computed: C) => (body: B) => R; 类型减速器=(计算:C)=>(主体:B)=>R; 下面是我的函数,它们实际上实现了Reducer,但我找不到将这种类型分配给这些函数的方法: const ignore = <C>(computed: C) => <B>(body:

如果可能的话,我想通过为泛型函数指定一个公共类型来简化泛型函数

首先,我创建了一个减速器类型:

type Reducer<C, B, R> = (computed: C) => (body: B) => R;
类型减速器=(计算:C)=>(主体:B)=>R;
下面是我的函数,它们实际上实现了Reducer,但我找不到将这种类型分配给这些函数的方法:

const ignore = <C>(computed: C) => <B>(body: B): B => body;
const assign = <C>(computed: C) => <B>(body: B): C => computed;
const modify = <C>(computed: C) => <B>(body: B): B & C => Object.assign(body, computed);
constignore=(computed:C)=>(body:B):B=>body;
常量赋值=(计算:C)=>(正文:B):C=>计算;
constmodify=(computed:C)=>(body:B):B&C=>Object.assign(body,computed);

我想知道是否有一种方法可以将Reducer类型分配给它们,和/或通过去掉一个公共因子来简化这些表达式,以避免重复?

为此,您需要Typescript不支持的“更高级类型”。您当前的
Reducer
只能为
C
B
采用预定义的类型,但您的函数可以采用
C
B
,这会因每个函数调用而有所不同。您需要将
R
定义为泛型
B
C
的一些操作:“选择B”、“选择C”或“组合它们”。但这些操作将是不存在的更高级类型。