如何声明函数的类型,该函数在typescript中返回推断类型的函数?

如何声明函数的类型,该函数在typescript中返回推断类型的函数?,typescript,Typescript,我正在尝试为如下所示的函数创建类型: constsomeselector1=(state:ContextState)=>()=>state.currentName; const someSelector2=(state:ContextState)=>(id:string)=>state[id]。值; 我想创建一个类型,它将被分配给“someSelector”函数,并推断返回函数的类型。大概是这样的: type选择器=(状态:ContextState)=>F constSomeSelector1

我正在尝试为如下所示的函数创建类型:

constsomeselector1=(state:ContextState)=>()=>state.currentName;
const someSelector2=(state:ContextState)=>(id:string)=>state[id]。值;
我想创建一个类型,它将被分配给“someSelector”函数,并推断返回函数的类型。大概是这样的:

type选择器=(状态:ContextState)=>F
constSomeSelector1:Selector=(state)=>()=>state.currentName;
const someSelector2:Selector=(state)=>(id:string)=>state[id]。值;
不幸的是,在这个实现中,
Type'(id:string)=>string'不能分配给类型“F”(id:string)=>string'可分配给'F'类型的约束,但'F'可以用约束'Function'的不同子类型实例化。
错误


是否有正确的方法?

< P>不能用泛型生成<代码>选择器< /代码>类型,但请考虑您在<代码>选择器< /代码>类型的参数中所处的位置。在使用选择器的函数中,可以对返回类型进行注释,以给出选择器的返回类型,如下所示:

类型选择器any>=(状态:ContextState)=>T;
函数applySelector any>(选择器:选择器):返回类型{
//代码
}
现在使用返回T的选择器调用
applySelector
,也将返回T