TS передача type props через connect redux
Доброго времени суток!
Есть следующая функция
import { connect, ConnectedProps } from 'react-redux';
import { TMethods, TState, TApp } from 'redux/types';
import { ComponentType } from 'react';
import action from 'redux/actions/app';
const mapState = (state: TState) => ({ ...state.app });
const mapDispatch = (dispatch: any) => ({ action: (method: TMethods, option: TApp) => dispatch(action(method, option)) });
const connector = connect(mapState, mapDispatch);
export default (component: ComponentType<any>) => connector(component);
export type TProps = ConnectedProps<typeof connector>;
использую функцию выше таким образом:
import connect from '...'
class ComponentName extends Component<PropsType, StateType> {***}
export default connect(ComponentName)
В итоге при импорте компонента я не вижу PropsType и при передаче props компоненту не видно типов.
Вопрос: Как изменить, что добавить что и как переписать чтоб типы тоже передавались через connect? А так же максимально избавиться от any. буду очень благодарен за помощь!
Ответы (1 шт):
Автор решения: Артур Франк
→ Ссылка
Вопрос решился таким образом:
import { ComponentType } from 'react';
import { connect, ConnectedProps } from 'react-redux';
import action from 'redux/actions/app';
import { TMethods, TApp, TState } from 'redux/types'
const mapState = (state: TState) => ({ ...state.app });
const mapDispatch = (dispatch: any) => ({ action: (method: TMethods, option: TApp) => dispatch(action(method, option)) });
const connector = connect(mapState, mapDispatch);
export default <T>(component: ComponentType<TProps>): ComponentType<T> => connector(component);
export type TProps = ConnectedProps<typeof connector>;