【问题标题】:return type for redux root reducerredux root reducer 的返回类型
【发布时间】:2019-07-18 00:35:02
【问题描述】:

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

函数缺少返回类型。 (@typescript-eslint/explicit-function-return-type)

我的根 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),
});

【问题讨论】:

    标签: typescript redux connected-react-router


    【解决方案1】:

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

    combineReducer 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),
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-05
      • 1970-01-01
      • 2022-07-31
      • 2021-11-07
      • 2020-11-10
      • 2018-05-27
      • 1970-01-01
      • 2018-06-05
      相关资源
      最近更新 更多