我找到了一种在使用mapStateToPropsfrom时获得类型安全的方法react-redux:如文档所述,您可以定义一个接口并React.Component<T>使用您的接口进行参数化。
但是,当我定义 时mapStateToProps,我已经定义了一个函数,其中可以推断结果对象的属性类型。例如,
function mapStateToProps(state: MyState) {
return {
counter: state.counter
};
}
在这里,counter可以推断prop与state.counter. 但我仍然必须有如下样板代码:
interface AppProps {
counter: number;
}
class App extends React.Component<AppProps> { ... }
export default connect(mapStateToProps)(App);
那么问题来了,有没有什么方法可以构造代码,这样我就可以避免编写counter两次的类型?或者为了避免参数化的类型React.Component——即使我可以从mapStateToProps函数的显式提示的结果类型中推断出组件的props,那也是可取的。我想知道上面的重复是否确实是使用 React-Redux 编写类型化组件的正常方式。