首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取rootReducer的类型?

如何获取rootReducer的类型?
EN

Stack Overflow用户
提问于 2019-05-04 09:54:11
回答 2查看 901关注 0票数 1

我有一个配置了ReactReduxImmutable.js + TypeScript的项目。在实现期间,我试图尽可能多地声明类型,但发现了一个有趣的问题。请参见下面的代码示例:

redux存储的简短配置

代码语言:javascript
复制
import { createStore } from 'redux';
import { combineReducers } from 'redux-immutable';

const rootReducer = combineReducers({...});
const store = createStore(rootReducer);

组件内部的某处

代码语言:javascript
复制
// ...
const mapStateToProps = (state: ReturnType<typeof rootReducer>) => {
  // state is plain object :(
};

在VS Code中的状态悬停时,工具提示显示状态是一个普通对象,但它不是。它应该是来自Immutable.js的自定义集合

如何获取正确类型的rootReducer?或者我做错了什么?

截图:

P.S. StateTypeReturnType做同样的事情

EN

回答 2

Stack Overflow用户

发布于 2019-05-15 23:05:13

我花了很多时间来寻找如何让TypeScriptImmutable.js成对工作的解决方案,不幸的是,没有明确的/微不足道的解决方案(或者我没有找到它)。

如果你刚开始你的项目,并且正在寻找一些替代方案,我强烈建议你看看Immer库。它提供了基本相同的功能,并且完美地支持TypeScript类型。

票数 0
EN

Stack Overflow用户

发布于 2021-10-04 12:07:57

这是可行的(不需要Immutable.js):

代码语言:javascript
复制
export type RootState = ReturnType<typeof rootReducer>;

如果由于某种原因它不能工作,这个应该可以工作:

代码语言:javascript
复制
export type RootState = ReturnType<typeof store.getState>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55978851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档