title: How to fix TypeScript error occurs when call takeEvery() in redux-saga?
body: <pre><code>import { createAction, handleActions } from 'redux-actions';
  import { delay } from 'redux-saga';
  import { all, put, takeEvery } from 'redux-saga/effects';
  
  export const action_creators = {
      get_action_of_set_number: createAction&lt;{ number:number }&gt;('set_number'),
      get_action_of_set_number_async: createAction&lt;{ number:number }&gt;('set_number_async')
  };
  
  const state = {
      number: 0
  }
  
  function* set_number_async(action: { payload: { number:number } }) {
      yield delay(1000);
      yield put(action_creators.get_action_of_set_number(action.payload));
  }
  
  export function* saga(action) {
      yield all([takeEvery('set_number_async', set_number_async)]);
      *** Error message : Argument of type '"set_number_async"' is not assignable
      *** to parameter of type 'Channel&lt;{ payload: { number:number; }; }&gt;'.
  }
  
  export default handleActions({
      set_number: (state, action) =&gt; {
          const new_number = action.payload!.number;
          return { ...state, number:new_number };
      }
  }, state);
  </code></pre>
  
  <p>full example : <a href="https://codesandbox.io/s/zry4vl2ymx" rel="nofollow noreferrer">https://codesandbox.io/s/zry4vl2ymx</a> (Other type definitions are omitted for convenience.)</p>
  
  <p>I don't know what I did wrong. If you know what is problem and how to solve it, please help with soving the problem. Thanks! :)</p>