Property 'catch' does not exist on type 'Promise<void>'
<p>I'm using Mongoose and Bluebird with typescript. Mongoose is setup to return Bluebird promises, but I don't know how to "tell" TypeScript about it.</p>

<p>For instance, I have a <code>Message</code> Mongoose model, if I try to do the following:</p>

<pre><code>new Message(messageContent)
  .save()
  .then(() =&gt; {...})
  .catch(next);
</code></pre>

<p>TypeScript complains that <code>Property 'catch' does not exist on type 'Promise&lt;void&gt;'.</code> because it thinks that <code>.save()</code> (or any other Mongoose methods returning a Promise) returns a 'regular' Promise (which indeed doesn't have the <code>.catch()</code> method) instead of a Bluebird promise.</p>

<p>How can I change the return type of Mongoose methods so that TypeScript knows it is returning a Bluebird promise?</p>