title: Redux combineReducer using Flow and flow-typed for redux
body: <p>I've got two reducers in the app combined with combine reducer (reducer.js).</p>
  
  <pre><code>import { combineReducers } from 'redux';
  
  export const reducers = {
      search: searchReducer,
      table: tableReducer
  };
  
  export const reducer = combineReducer(reducers);
  </code></pre>
  
  <p>Also I have a snippet to automatically parse store types from reducers (from <a href="https://blog.callstack.io/type-checking-react-and-redux-thunk-with-flow-part-2-206ce5f6e705" rel="nofollow noreferrer">this Medium post</a>) using Store from flow-typed redux_v3.x.x.js</p>
  
  <pre><code>import { reducers } from './reducer';
  
  type Reducers = typeof reducers;
  
  type $ExtractFunctionReturn = &lt;V&gt;(v: (...args: any) =&gt; V) =&gt; V;
  export type State = $ObjMap&lt;Reducers, $ExtractFunctionReturn&gt;;
  
  export type Store = ReduxStore&lt;State, Actions&gt;;
  </code></pre>
  
  <p>And I got an error from flow-typed CombinedReducer that it can't find reducers (search and table).</p>
  
  <pre><code>src/types.js:65
  65: export type Store = ReduxStore&lt;State, Actions&gt;;
                                  ^^^^^ property `search`. Property not 
  found in
  54:   declare function combineReducers&lt;O: Object, A&gt;(reducers: O): 
  CombinedReducer&lt;$ObjMap&lt;O, &lt;S&gt;(r: Reducer&lt;S, any&gt;) =&gt; S&gt;, A&gt;;
  
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ object type. See lib: flow-
  typed/npm/redux_v3.x.x.js:54
  
  src/types.js:65
  65: export type Store = ReduxStore&lt;State, Actions&gt;;
                                  ^^^^^ property `table`. Property not 
  found in
  54:   declare function combineReducers&lt;O: Object, A&gt;(reducers: O): 
  CombinedReducer&lt;$ObjMap&lt;O, &lt;S&gt;(r: Reducer&lt;S, any&gt;) =&gt; S&gt;, A&gt;;
  
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ object type. See lib: flow-
  typed/npm/redux_v3.x.x.js:54
  </code></pre>
  
  <p>How to solve that error and make my Store working correct with Flow?</p>
  
  <p>Before that error I got another one</p>
  
  <pre><code>Flow: object map. This type is incompatible with union: Intersection 
  type | undefined.
  flow-typed/redux_v3.x.x.js
  30: declare type CombinedReducer&lt;S, A&gt; = (state: $Shape&lt;S&gt; &amp; {} | void
  </code></pre>
  
  <p>And I have added Object type to declare type CombinedReducer (actually I don't think I should edit flow-typed and in the Medium example there is no such an error):</p>
  
  <pre><code>declare type CombinedReducer&lt;S, A&gt; = (state: $Shape&lt;S&gt; &amp; {} | Object | void
  </code></pre>
  
  <p>I suppose these errors can be caused by the same thing.</p>