title: type '(state: State, action: Action) => State' is not assignable to parameter of type 'Reducer<State, Action<any>>'
body: <p>Currently, I am trying to create a redux store with the following code.</p>
  <pre class="lang-js prettyprint-override"><code>import { createStore, Action } from &quot;redux&quot;;
  interface State {
    page: string;
  }
  
  const reducer = (state: State, action: Action) =&gt; {
    return state;
  };
  export const store = createStore(reducer);
  </code></pre>
  <p>but I am getting an error at the <code>createStore</code> function, telling me that</p>
  <pre><code>No overload matches this call.
    Overload 1 of 2, '(reducer: Reducer&lt;State, Action&lt;any&gt;&gt;, enhancer?: StoreEnhancer&lt;unknown, unknown&gt; | undefined): Store&lt;State, Action&lt;...&gt;&gt;', gave the following error.
      Argument of type '(state: State, action: Action) =&gt; State' is not assignable to parameter of type 'Reducer&lt;State, Action&lt;any&gt;&gt;'.
        Types of parameters 'state' and 'state' are incompatible.
          Type 'State | undefined' is not assignable to type 'State'.
            Type 'undefined' is not assignable to type 'State'.
    Overload 2 of 2, '(reducer: Reducer&lt;State, Action&lt;any&gt;&gt;, preloadedState?: { page: string; } | undefined, enhancer?: StoreEnhancer&lt;unknown, {}&gt; | undefined): Store&lt;...&gt;', gave the following error.
      Argument of type '(state: State, action: Action) =&gt; State' is not assignable to parameter of type 'Reducer&lt;State, Action&lt;any&gt;&gt;'.
  </code></pre>
  <p>Redux version is <code>^4.1.0</code>.</p>