У меня есть селектор, - selectFieldActiveRoomMarker, в котором есть другой селектор, получающий активный маркер с типом RoomMarkerData, и в котором есть динамически передаваемый аргумент - название поля. Проблема заключается в том, что вызывая этот селектор в компоненте, используя useSelector хук и передавая название поля, я получаю тип не конкретного поля, а объединение всех полей объекта. Например, я хочу получить поле 'id', типом которого является number, и хочу увидеть в переменной 'field' тип равный 'number' | 'undefined', но по факту я получаю 'number' | 'string' | 'undefined'. (См. код в компоненте).
// Селекторы и типы
type RoomMarkerData = {
id: number,
title: string
}
type FieldsRoomMarkerData = keyof RoomMarkerData
selectFieldActiveRoomMarker = createSelector(
[
selectActiveRoomMarker,
(state, field: FieldsRoomMarkerData) => field,
],
(activeRoomMarker, field) => (
activeRoomMarker && activeRoomMarker[field]),
)
// Получение поля в компоненте
const field = useAppSelector((state) => (
selectFieldActiveRoomMarker(state, 'id')
))