title: Which type is runSaga(,secondparam,) is expecting and how to make one?
body: <p>I'm trying to write test of a saga that handles login. Here is my code below and the issue I'm running into:</p>
  
  <pre><code>const fakeStore = await runSaga(
   {
     getState: () =&gt; ({...state}),
     dispatch: (action) =&gt; dispatchedActions.push(action)
   },
   apis.user.login, // this where the issue is from
   payload
  ).done;
  </code></pre>
  
  <p><code>Tslint</code> error message: </p>
  
  <pre><code>Argument of type '(user: Authentication) =&gt; Promise&lt;IUserResponse&gt;' is not assignable to parameter of type 'Saga1&lt;Authentication&gt;'.
    Property 'next' is missing in type 'Promise&lt;IUserResponse&gt;' but required in type 'Iterator&lt;any&gt;'.
  </code></pre>
  
  <p>Here is <code>apis.user</code></p>
  
  <pre><code>apis{
   user: {
    login: (user: Authentication):Promise&lt;IUserResponse&gt; =&gt;
     axios.post('/api/login', user)
       .then((res) =&gt; res.data)
       .catch((res) =&gt; res.data || { message:"" }),
   }
  }
  </code></pre>
  
  <p>I don't get how to make that <code>Saga1</code> type. I looked into the type definition and here is how it looks like:</p>
  
  <pre><code>export function runSaga&lt;A, S, T1&gt;(
    storeInterface: RunSagaOptions&lt;A, S&gt;,
    saga: Saga1&lt;T1&gt;,
    arg1: T1): Task;
  
  Saga1&lt;T1&gt;
  
  type Saga1&lt;T1&gt; = (arg1: T1) =&gt; Iterator&lt;any&gt;;
  </code></pre>