在Typescript中键入自定义react-redux连接函数

问题描述 投票:1回答:2

我有一个庞大而复杂的应用程序,我正在尝试迁移到Typescript。我们的一个特殊约束是我们使用createProvider和storeKey选项将容器连接到商店。鉴于我们有100个容器的北部,我创建了一个辅助函数,默认情况下自动传递此选项。它很简单,并且按照常规JS的预测工作。

function connectToStore(mapStateToProps, mapDispatchToProps, mergeProps, options = {}) {
     const finalOpts = { ...options, storeKey: STORE_KEY };
     return connect(mapStateToProps, mapDispatchToProps || {}, mergeProps, finalOpts);
}

如何输入此功能?我看过连接的类型声明的噩梦,我想知道是否有任何方式避免再现原始使用的那些。当然必须采用更简洁的方法。谢谢!

reactjs typescript redux react-redux
2个回答
0
投票

react-redux connect有很多重载,一些辅助类别别名是多种替代方案的联合;我想你只需要其中一些情况(例如,只有四个参数的重载)。如果我在你的情况下,我会复制connect打字并开始评论我认为不适用于connectToStore的案件。一旦成功检查了对connectToStore的所有调用,您就可以删除已注释掉的案例。


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
  );
};
© www.soinside.com 2019 - 2024. All rights reserved.