title: Type 'Dispatch<RootState>' is not assignable to type 'Dispatch<AnyAction>'
body: <p>hello i'm try to user redux with angular.
  but i have this error message when i try to run my angular app: </p>
  
  <pre><code>ERROR in node_modules/@angular-redux/store/lib/src/components/ng-redux.d.ts(10,31): error TS2420: Class 'NgRedux&lt;RootState&gt;' incorrectly implements interface 'ObservableStore&lt;RootState&gt;'.
    Types of property 'dispatch' are incompatible.
      Type 'Dispatch&lt;RootState&gt;' is not assignable to type 'Dispatch&lt;AnyAction&gt;'.
        Type 'RootState' is not assignable to type 'AnyAction'.
  node_modules/@angular-redux/store/lib/src/components/ng-redux.d.ts(37,33): error TS2344: Type 'RootState' does not satisfy the constraint 'Action&lt;any&gt;'.
  node_modules/@angular-redux/store/lib/src/components/root-store.d.ts(18,24): error TS2344: Type 'RootState' does not satisfy the constraint 'Action&lt;any&gt;'.
  node_modules/redux-observable/index.d.ts(32,56): error TS2344: Type 'S' does not satisfy the constraint 'Dispatch&lt;AnyAction&gt;'.
  </code></pre>
  
  <p>my reducer:</p>
  
  <pre><code>export default function reducer(state= {
    persones: [],
    selectedPersone: {},
  }, action) {
    let newState;
    switch (action.type) {
      case 'GET_PERSONNES':
        newState = { ...state, persones: action.payload };
        break;
      case 'SELECT_PERSONNE':
        newState = { ...state, selectedPersone: action.payload };
        break;
      case 'POST_PERSONNES':
        newState = { ...state, selectedPersone: action.payload };
        break;
      case 'PUT_PERSONNES':
        newState = { ...state, selectedPersone: {} };
        break;
      default:
        newState = state;
        break;
    }
    return newState;
  }
  </code></pre>
  
  <p>my reducer index: </p>
  
  <pre><code>import { combineReducers } from 'redux';
  
  import personnes from './personnes';
  
  export default combineReducers({
    personnes,
  } as any);
  </code></pre>
  
  <p>and my store :</p>
  
  <pre><code>import { createStore, applyMiddleware, Store } from 'redux';
  import logger from 'redux-logger';
  import { createEpicMiddleware } from 'redux-observable';
  import { Observable } from 'rxjs';
  import reducers from './reducers';
  import 'rxjs';
  
  
  const pingEpic = action$ =&gt;
    action$.ofType('HTTP_GET')
      .debounceTime(500)
      .switchMap(action =&gt;
        Observable.ajax.get(action.payload.url)
          .map((a:any) =&gt; {
            console.log(a);
            return { type: action.payload.action, payload: a.response };
          })
        );
  
  const post = action$ =&gt;
    action$.ofType('HTTP_POST')
      .debounceTime(500)
      .switchMap(action =&gt;
        Observable.ajax.post(
          action.payload.url,
          action.payload.object,
        )
          .map((a) =&gt; {
            console.log(a);
            return { type: action.payload.action, payload: a.response };
          })
       );  
  
  const put = action$ =&gt;
    action$.ofType('HTTP_PUT')
      .debounceTime(500)
      .switchMap(action =&gt;
        Observable.ajax.put(
          action.payload.url,
          action.payload.object,
        )
          .map((a) =&gt; {
            console.log(a);
            return { type: action.payload.action, payload: a.response };
          })
      );
  
  
  const epicMiddleware = createEpicMiddleware(pingEpic);
  const postMidelWare = createEpicMiddleware(post);
  const putMidelWare = createEpicMiddleware(put);
  export const middleware = applyMiddleware(logger, epicMiddleware, postMidelWare, putMidelWare);
  
  export const store: Store&lt;IAppState&gt; = createStore(reducers, middleware);
  </code></pre>
  
  <p>can you help me ?</p>
  
  <p>thanks you :) </p>