Я довольно новичок в Typescript. Хотите знать, если кто-то может объяснить мне, что я делаю неправильно в фрагменте кода ниже. Создав пользовательский селектор с createStructoredSelector
, который должен возвращать мне логическое значение независимо от того, активен ли какой-либо элемент, я попытался напечатать его следующим образом:
export const getIsActive = createStructuredSelector<RootState, OwnProps, Selection>({
isActive: getIsLangActive
})
где
type RootState = ReturnType<typeof rootReducer> // rootReducer comes from combineReducers
interface OwnProps {
lang: 'EN' | 'RU'
}
interface Selection {
isActive: boolean
}
и
const getIsLangActive = createSelector(
[getCurrentLang, getOwnLang],
(currentLang, ownLang) => currentLang === ownLang
)
const getLanguage = ({ language }: RootState) => language
const getOwnLang = (_, { lang }) => lang
const getCurrentLang = createSelector(
getLanguage,
({ currentLang }) => currentLang
)
Несмотря на то, что вышеперечисленное работает нормально, я получаю сообщение об ошибке при попытке использовать его в компоненте React:
const { isActive } = useSelector(getIsActive)
Сообщение об ошибке: Argument of type 'ParametricSelector<CombinedState<{ KEY_VALUE_STATE_TYPES }>, OwnProps, Selection>' is not assignable to parameter of type '(state: CombinedState<{ KEY_VALUE_STATE_TYPES }>) => Selection'.