私はMongooseとBluebirdをtypescriptで使用しています。 MongooseはBluebirdの約束を返すように設定されていますが、TypeScriptに "知らせる"方法についてはわかりません。例えばプロパティ 'catch'がタイプ 'Promise <void>'に存在しません
私は次の操作を実行しようとした場合、私は、Message
マングースモデルを持っている:それは.save()
(または約束を返す任意の他のマングースの方法が)、Aを返すことを考えているので
new Message(messageContent)
.save()
.then(() => {...})
.catch(next);
活字体はProperty 'catch' does not exist on type 'Promise<void>'.
ことを不平を言いますブルーバード(Bluebird)の約束の代わりに、「通常の」約束(確かに.catch()
の方法を持っていない)
Mongooseメソッドの戻り値の型を変更して、TypeScriptがBluebirdの約束を返すことを知るようにするにはどうすればよいですか?
MongooseとPromise [mongoose.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/mongoose/mongoose.d.ts)の拡張のためのDefinitelyTypedファイルがあるようです。 )。これらのファイルを参照しましたか? – Igor
@Igorはい、しかし、私はMongooseがデフォルトで持っているPromiseを使用したくないので、Bluebirdに置き換えました。 ( 'mongoose.Promise = require( 'bluebird')'を実行することによって) – Nepoxx
[DefinitelyTyped/bluebird/bluebird.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/)を参照するのはどうですか? bluebird/bluebird.d.ts)と 'save()'結果のキャストを使用していますか? – Igor