Node.js 类型脚本承诺语法

Node.js 类型脚本承诺语法,node.js,mongodb,typescript,mongoose,promise,Node.js,Mongodb,Typescript,Mongoose,Promise,我最近开始学习打字脚本,并从文档中找到了一些有用的方法。一切看起来都很简单,但代码中有一小部分我就是不明白 这是: //连接到MongoDB const mongoUrl=MONGODB_URI; (猫鼬)。承诺=蓝鸟; 猫鼬。连接(猫鼬)。然后( () => {}, ).catch(错误=>{ log(“MongoDB连接错误。请确保MongoDB正在运行。”+err); }); 让我困惑的是这句话: (猫鼬)。承诺=蓝鸟; mongoose语法让我想起了类型转换,但我不认为这是这里真正发

我最近开始学习打字脚本,并从文档中找到了一些有用的方法。一切看起来都很简单,但代码中有一小部分我就是不明白

这是:

//连接到MongoDB
const mongoUrl=MONGODB_URI;
(猫鼬)。承诺=蓝鸟;
猫鼬。连接(猫鼬)。然后(
() => {},
).catch(错误=>{
log(“MongoDB连接错误。请确保MongoDB正在运行。”+err);
});
让我困惑的是这句话:

(猫鼬)。承诺=蓝鸟;
mongoose
语法让我想起了类型转换,但我不认为这是这里真正发生的事情,因为我们将
bluebird
模块分配给了
.Promise
部分

因此,如果有人能够澄清这一点,我将不胜感激。

mongoose
确实是类型转换,尽管是旧语法。最新的形式应该是
(猫鼬也可以)。Promise=bluebird
。这意味着您引用了
mongoose
,忽略了它的实际类型,并将其视为
any

这可以防止编译时错误与mongoose的类型不匹配


一般来说,您不应该强制转换到任何,您应该研究一下在这种情况下为什么需要这样做,看看您是否可以避免。

关于
.Promise=bluebird
部分呢?我知道
bluebird
是一个promises模块,但是这个赋值在这里意味着什么呢?我猜,将bluebird赋值给
mongoose.Promise
会导致mongoose的Promise返回函数和方法返回
bluebird
的实例,而不是本地
Promise
的实例。但是你可以很容易地查看文档来验证这一点。