我有一个庞大而复杂的应用程序,我正在尝试迁移到Typescript。我们的一个特殊约束是我们使用createProvider和storeKey选项将容器连接到商店。鉴于我们有100个容器的北部,我创建了一个辅助函数,默认情况下自动传递此选项。它很简单,并且按照常规JS的预测工作。
function connectToStore(mapStateToProps, mapDispatchToProps, mergeProps, options = {}) {
const finalOpts = { ...options, storeKey: STORE_KEY };
return connect(mapStateToProps, mapDispatchToProps || {}, mergeProps, finalOpts);
}
如何输入此功能?我看过连接的类型声明的噩梦,我想知道是否有任何方式避免再现原始使用的那些。当然必须采用更简洁的方法。谢谢!
react-redux connect
有很多重载,一些辅助类别别名是多种替代方案的联合;我想你只需要其中一些情况(例如,只有四个参数的重载)。如果我在你的情况下,我会复制connect
打字并开始评论我认为不适用于connectToStore
的案件。一旦成功检查了对connectToStore
的所有调用,您就可以删除已注释掉的案例。
import { Connect } from "react-redux";
const connectToStore: Connect = (
mapStateToProps,
mapDispatchToProps,
mergeProps,
options = {}
) => {
const finalOpts = { ...options, storeKey: STORE_KEY };
return connect(
mapStateToProps,
mapDispatchToProps || {},
mergeProps,
finalOpts
);
};