memoize((key: keyof IProfileData) => (state: RootStateType): IProfileData[key] => state.profile.data[key]);
?
Это нерабочий код именно из-за IProfileData[key] – написал для понимания, что нужно.
То есть, значение аргумента функции должно стать ключом для выбора типа конкретного поля.
Я понимаю, что это маловероятно, хотя бы потому, что TS компилируется перед тем, как интерпретируется JS, но возможно алтернативный TS вариант?
Дженерики export const profileSelectorData = memoize(<Key extends keyof IProfileData>(key: Key) => (state: RootStateType): IProfileData[Key] => state.profile.data[key]); что-то вроде такого
Обсуждают сегодня