2016-05-21 10 views
0

私はコールバック地獄を無効にする約束を使用しています。タイプ「約束<Document>は」「約束<Document>」を入力する割り当てられない

しかし、私は型キャストの問題に会いました。ここ

が私のメソッドまたは関数が定義されている約

findById(entityId: string): Promise<mongoose.Document> { 
    return this._model.findById(entityId).exec(); 
} 

typescriptですヒントいくつかのエラー:

[TS]型 '約束' '約束' を型に代入できません。プロパティの 種類「は、」互換性がありません。 タイプ '(onFulFill:(結果:ドキュメント)=>ボイド| U |プロミス、onReject?:(ERR:任意)=>ボイド| U | P ...'?:{(onfulfilled」タイプに割り当てません(値:ドキュメント)=> TResult | PromiseLike、onrejected :(reas ... ') タイプ' Promise 'に' Promise 'を割り当てることはできません。 ' Promise 'タイプの' catch 'プロパティがありません。

私は、この問題を無効にする方法を知りたいですか?

+0

があるように思えますあなたが使用している2つの異なる 'Promise'タイプ。関数のシグネチャで返すと宣言したものは、 'exec()'が返すものと同じではありません。 –

+0

this._modelはmongooseオブジェクト、exec()はPromiseを返します。mongoose.Docment> –

+0

mongooseはA + promiseライブラリを使用しています。これはネイティブ実装とは異なる実装です。あなたはそれらの両方を混ぜているようです –

答えて

0

使用されている別の約束の種類を確認してください。他にはありませんでしたしながら、私の場合は、一つのファイルは、es6-promiseをインポートしました。