在Mongoose代码中使用ES6 Promises

时间:2016-02-25 06:04:28

标签: node.js mongoose typescript

我正在尝试在TypeScrpt中使用ES6 Promises for Mongoose ODM。

我有以下一行

mongoose.Promise = Promise;

这给我以下错误:

error TS2322: Type 'PromiseConstructor' is not assignable to type 'typeof Promise'.
  Type 'Promise<any>' is not assignable to type 'Promise<any>'.
    Property 'end' is missing in type 'Promise<any>'.

1 个答案:

答案 0 :(得分:3)

您正在将ES6原住民promise分配给猫鼬promise

mongoose.Promise = Promise;

您收到错误

  

“承诺”类型中缺少属性“结束”。

因为原生Promise 缺少属性 end,而存在于mongoose Promise中(docs https://www.npmjs.com/package/mpromise)。

解决方法

你可以:

  • 将猫鼬定义用来说谎并说出ES6 Promise代替mpromise
  • 或者取消错误:

    mongoose.Promise = Promise as any;
    
  • 或者不完全这样做:)