【发布时间】:2020-02-25 15:10:37
【问题描述】:
我找到了一种在使用来自react-redux 的mapStateToProps 时获得类型安全的方法:作为documented,您可以定义一个接口并使用您的接口参数化React.Component<T>。
但是,当我定义mapStateToProps 时,我已经定义了一个函数,可以推断结果对象的属性类型。例如,
function mapStateToProps(state: MyState) {
return {
counter: state.counter
};
}
这里,counter 可以推断为与state.counter 相同的类型。但我仍然必须有如下样板代码:
interface AppProps {
counter: number;
}
class App extends React.Component<AppProps> { ... }
export default connect(mapStateToProps)(App);
所以问题是,有没有什么方法可以构造代码,这样我就可以避免两次编写counter 的类型?或者为了避免参数化React.Component 的类型——即使我可以从mapStateToProps 函数的显式提示结果类型中推断出组件的属性,这将是更可取的。我想知道上面的重复是否确实是使用 React-Redux 编写类型化组件的正常方式。
【问题讨论】:
标签: javascript reactjs typescript redux react-redux