прикручиваю typescript к react
вот так приблизительно выглядят мои компоненты:
import React, { Component } from 'react'; import { connect } from 'react-redux'; import { storeState } from '../../store/store'; import { ThunkDispatch } from 'redux-thunk'; import { AnyAction } from 'redux'; type ControlsProps = { tags: Array<string>; isLoading: boolean; limit: number; dispatch: ThunkDispatch<storeState, {}, AnyAction>; } class Controls extends Component<ControlsProps, {}> { ... } export default connect( (store: storeState) => ({ isLoading: store.loading, limit: store.filters.limit, tags: store.tags, }), )(Controls);
получается дублирование перечисления пропсов.
при этом, если я поменяю сигнатуру редьюсера, то в mapStateToProps у меня изменения сразу подтянутся через экспортированный тип, а вот в ControlsProps нужно не забыть внести изменения руками, да еще и опечатку можно допустить и никто не ругнется.
а хотелось бы все прописать 1 раз в mapStateToProps и чтобы изменения сами подхватывались в ControlsProps.
есть ли способ захватить тип возвращаемого mapStateToProps значения?