Есть ли способ автоматически расширять интерфейс подключенного компонента, используя типы mapStateToProps
и mapDispatchToProps
? Например, следующий код:
interface ComponentProps {
state?: State;
action?: (id: string) => void;
}
const mapStateToProps = (state: any) => ({
state: state,
});
const mapDispatchToProps = (dispatch: any) => ({
action: (id: string) => dispatch(Action),
});
const Component = (props: ComponentProps) => <div>...</div>;
export const ConnectedComponent = connect(
mapStateToProps,
mapDispatchToProps,
)(Component);
требует, чтобы я добавил state
и action
в качестве дополнительных реквизитов в мой ComponentProps
, чтобы использовать их в моем компоненте, поскольку реквизиты будутбыть назначенным connect
HOC.
При использовании чего-то вроде materialUI и его withStyles
HOC, мы можем использовать WithStyles<typeof styles>
для автоматического добавления classes
проп (с точными ключами в зависимости от styles
)к нашему интерфейсу, например
ComponentProps extends WithStyles<typeof styles> {
actualProps: any;
}
const ConnectedComponent = withStyles(styles)(Component);
Можно ли сделать то же самое для connect
?