title: How to return a generic Promise type?
body: <p>Basically, I have a Manifest class like below:</p>
  
  <pre><code>export interface SomeManifest {
    loadChildren: Promise&lt;any&gt;;
    name: string;
  }
  </code></pre>
  
  <p>In the calling will be:</p>
  
  <pre><code>const mod = await manifest.loadChildren();
  </code></pre>
  
  <p>But I get the following error</p>
  
  <blockquote>
    <p>Promise' is missing the following properties from type 'Promise&lt;{}>': then, catch, [Symbol.toStringTag]</p>
  </blockquote>
  
  <p>If I change <code>loadChildren</code> to return <code>any</code>, then the error gone. Doing this way, it's very hard to know <code>loadChildren</code> is a function to return a promise or not. How can I use return <code>Promise</code> type without the above error?</p>