title: Typescript async function return type void vs Promise<void>
body: <p>Is there a difference between typescript void and Promise&lt; void > types?</p>
  
  <p>Asking because I got confused why this is a valid typescript?</p>
  
  <pre><code>const asyncFunc: () =&gt; void = async () =&gt; {
      await new Promise(resolve =&gt; resolve());
  };
  </code></pre>
  
  <p>Shouldn't this be the only valid case? </p>
  
  <pre><code>const asyncFunc: () =&gt; Promise&lt;void&gt; = async () =&gt; {
      await new Promise(resolve =&gt; resolve());
  };
  </code></pre>