我找到了一种在使用mapStateToProps
from时获得类型安全的方法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 编写类型化组件的正常方式。