typescript - redux root reducer 的返回类型

标签 typescript redux connected-react-router

我正在将我的 root reducer 从 javascript 转换为 typescript,但是,我收到一个 linting 错误:

Missing return type on function. (@typescript-eslint/explicit-function-return-type)

我的 root reducer 函数的正确返回类型应该是什么?谢谢。

import { History } from 'history';
import { combineReducers } from 'redux';
import { connectRouter } from 'connected-react-router';
import sampleReducer from './sampleReducer';

export default (historyObject: History) => combineReducers({
  sampleReducer,
  router: connectRouter(historyObject),
});

最佳答案

您似乎已经设置了规则“Require explicit return types on functions and class methods”并且您需要明确指定函数的返回类型。

结合 reducer return function类型 Reducer<S, A> , 其中S代表应用状态。

首先我建议你像下面这样定义应用状态

import { RouterState } from 'connected-react-router';

type AppState = {
    sampleReducer: /* type of state, that sampleReducer accepts and returns */;
    router: RouterState
}

然后你就可以输入root reducer

import { Reducer } from 'redux';

export default (historyObject: History): Reducer<AppState> => combineReducers({
    sampleReducer,
    router: connectRouter(historyObject),
});

关于typescript - redux root reducer 的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57085611/

相关文章:

javascript - zone.js 和 rxjs 在 angular2 中的重要性

typescript - NestJS Nest 无法解析依赖项错误

reactjs - bindActionCreators 期望键 'ACCOUNT_LOGIN' 的函数 actionCreator ,而不是收到类型 'string'

node.js - 无法读取 Node 中获取的帖子

visual-studio - Visual Studio 2017 的 typescript 支持

reactjs - 如何使用 React Redux Hooks 加载 Spinner

reactjs - 有没有办法用React-Router v4+修改页面标题?

reactjs - 无法处理 Uncaught TypeError : Cannot read property 'location' of undefined at createRouterReducer

angular - 如何将参数传递给模态?