从返回值推断typescript函数的返回类型

从返回值推断typescript函数的返回类型,typescript,Typescript,考虑这个例子: type State={sth:Something}; 类型选择器=(状态:state)=>T; const selector:selector=state=>state.sth; 我希望从返回值自动推断选择器函数的返回类型,并能够访问其属性,但我得到以下错误: 类型“某物”不能分配给类型“T” 是否可以在不明确指定返回类型的情况下执行此操作?选择器是一个通用函数,因此它的任何实现都应该是一个通用函数 您可能希望Selector是一个泛型类型,它恰好是一个函数: type Se

考虑这个例子:

type State={sth:Something};
类型选择器=(状态:state)=>T;
const selector:selector=state=>state.sth;
我希望从返回值自动推断
选择器
函数的返回类型,并能够访问其属性,但我得到以下错误:

类型“某物”不能分配给类型“T”


是否可以在不明确指定返回类型的情况下执行此操作?

选择器是一个通用函数,因此它的任何实现都应该是一个通用函数

您可能希望
Selector
是一个泛型类型,它恰好是一个函数:

type Selector<T> = (state: State) => T;

const selector: Selector<Something> = state => state.sth;
type Something  =  { s: string}
type State = { sth: Something };
type Selector<T> = (state: State) => T;
function createSelector<T>(fn: Selector<T>) {
    return fn
}
const selector = createSelector(state => state.sth);