Я пытаюсь создать общую c функцию, которая принимает другую функцию и определяет тип возвращаемого значения (аналогично тому, что делает карта).
У меня есть этот код:
type game_selector<T> = <T>( state : GT.game_state ) => T
export function useGameState<T>( gs : game_selector<T> ): T {
И затем я называю это так:
const users = useGameState( gs => gs.users )
Я предполагаю из ошибки, что тип gs
правильно выведен, поскольку он правильно находит тип gs.users
как Users
. Ошибка:
TS2322: Type 'Users' is not assignable to type 'T'
Как правильно набрать эту функцию?