我有一个大型的,复杂的应用程序,正在尝试迁移到Typescript。我们有一个特殊的约束,就是我们利用createProvider和storeKey选项将容器连接到商店。鉴于我们拥有100个容器以北,因此我创建了一个辅助函数,默认情况下会自动传递此选项。它非常简单,并且可以像常规JS中所预期的那样工作。
function connectToStore(mapStateToProps, mapDispatchToProps, mergeProps, options = {}) {
const finalOpts = { ...options, storeKey: STORE_KEY };
return connect(mapStateToProps, mapDispatchToProps || {}, mergeProps, finalOpts);
}
如何键入此功能?我已经看过了连接的类型声明的噩梦,并且想知道是否仍然有一些方法可以避免重现原始用途。当然,必须有一种更简洁的方法。谢谢!
答案 0 :(得分:0)
react-redux unittest.main()
有很多重载,并且某些辅助类型别名是多个替代的并集;我想您只需要其中一些情况(例如,仅包含四个参数的重载)。如果您遇到这种情况,请复制connect
的键入内容,然后开始注释我认为不适用于connect
的案例。成功检查所有对connectToStore
的呼叫后,您可以删除已注释掉的案例。
答案 1 :(得分:0)
import { Connect } from "react-redux";
const connectToStore: Connect = (
mapStateToProps,
mapDispatchToProps,
mergeProps,
options = {}
) => {
const finalOpts = { ...options, storeKey: STORE_KEY };
return connect(
mapStateToProps,
mapDispatchToProps || {},
mergeProps,
finalOpts
);
};