```ts //Type A ----> Type B type A = (state: string, action: any) => string type B = string //SyntaxError type GetB<K extends (state: S, action: any) => S, S ???? > = S type xxx = GetB<A> //right const getB = <S>(f: (state: S, action: any) => S) => ({} as S) let b = getB({} as A) //string ```