2016-05-21 65 views
0

我正在使用Promise來使回調地獄無效。鍵入'Promise <Document>'不可分配鍵入'Promise <Document>'

但我遇到了類型轉換問題。

這裏是我的方法或函數定義:

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

的打字稿提示一些錯誤有關:

[TS]類型 '無極' 是不能分配給鍵入 '承諾'。 'then'屬性的類型不兼容。 ((onFulFill:(result:Document)=> void | U | Promise,onReject ?:(err:any)=> void | U | P ...'不能分配給類型'{(onfulfilled ?: :(值:文檔)=> TResult | PromiseLike,onrejected ?:(reas ...' 類型'Promise'不可分配鍵入'Promise' 'Promise'類型中缺少屬性'catch'

我想知道如何失去此問題?使用

+0

好像有你正在使用兩種不同的'Promise'類型。你聲明在函數簽名中返回的那個與exec()返回的不一樣。 –

+0

this._model是mongoose對象,exec()將返回Promise

+0

從我所看到的,mongoose正在使用A + promise庫,這是與本機實現不同的實現。你似乎在混合它們兩個 –

回答

0

檢查不同類型的承諾。對我來說,一個文件導入es6-promise,而另一個沒有。

相關問題