我正在执行以下操作:
// Connect to MongoDB
mongoose.connect(MONGODB_URI, { useNewUrlParser: true, useCreateIndex: true }).then(
() => { /** ready to use. The `mongoose.connect()` promise resolves to undefined. */ },
).catch((err: Error) => {
console.log('MongoDB connection error. Please make sure MongoDB is running. ' + err)
process.exit();
})
并且我从WebStorm TypeScript服务中收到以下错误(手动运行TSLint可以正常工作):
TS2345:类型为'{useNewUrlParser:boolean; useCreateIndex: 布尔值}'不可分配给'(err:MongoError)类型的参数 =>无效”。对象文字只能指定已知的属性,并且'useNewUrlParser'在'(err:MongoError)=> void'类型中不存在。
@types/mongoose
似乎是一个问题,但我到处都看过,找不到它的来源。
这是一种变通方法,不能真正解释问题:
mongoose.set('useNewUrlParser', true)
mongoose.set('useCreateIndex', true)
mongoose.connect(MONGODB_URI).then(...
答案 0 :(得分:0)
您需要安装dev依赖项
npm install -D @types/mongoose --save
答案 1 :(得分:0)
不幸的是,即使安装了类型定义,Mongoose 库也会抛出错误:
yarn add @types/mongoose or npm i --save-dev @types/mongoose
补救措施之一是在 skipLibCheck: true
中添加选项 tsconfig.json
:
{
"compilerOptions": {
...
"skipLibCheck": true,
...
},
...
}