title: Type 'Promise<Document>' is not assignable to type 'Promise<Document>'
body: <p>I'm using Promise to void callback hell.</p>
  
  <p>But I met the typecast issue. </p>
  
  <p>here is my method or function define:</p>
  
  <pre><code>findById(entityId: string): Promise&lt;mongoose.Document&gt; {
      return this._model.findById(entityId).exec();
  }
  </code></pre>
  
  <p>The typescript tips some error about:</p>
  
  <blockquote>
    <p>[ts] Type 'Promise' is not assignable to type 'Promise'.
      Types of property 'then' are incompatible.
        Type '(onFulFill: (result: Document) => void | U | Promise, onReject?: (err: any) => void | U | P...' is not assignable to type '{ (onfulfilled?: (value: Document) => TResult | PromiseLike, onrejected?: (reas...'.
          Type 'Promise' is not assignable to type 'Promise'.
            Property 'catch' is missing in type 'Promise'.</p>
  </blockquote>
  
  <p>I want to know how to void this issue?</p>