Я пытаюсь создать тип для функций, которые выглядят следующим образом:
const someSelector1 = (state: ContextState) => () => state.currentName;
const someSelector2 = (state: ContextState) => (id: string) => state[id].values;
Я хотел бы создать тип, который будет назначен функциям "someSelector", и который будет выводить типы функция возврата. Примерно так:
type Selector = <F extends Function>(state: ContextState) => F
const someSelector1: Selector = (state) => () => state.currentName;
const someSelector2: Selector = (state) => (id: string) => state[id].values;
К сожалению, в этой реализации я получаю Type '(id: string) => string' is not assignable to type 'F'. '(id: string) => string' is assignable to the constraint of type 'F', but 'F' could be instantiated with a different subtype of constraint 'Function'.
ошибку.
Есть ли правильный способ сделать это?