我做了一个
rm -rf node_modules && npm cache verify && npm install && npm run start
,现在我的控制台正在抱怨
node_modules/@types/mongodb/index.d.ts:46:78 - 错误 TS7016:无法 找到模块“bson”的声明文件。 '/Users/microurb/Projects/backend/node_modules/bson/index.js' 隐式具有“any”类型。 尝试
如果 它存在或添加包含npm i --save-dev @types/bson
的新声明 (.d.ts) 文件declare module 'bson';
46 导入 { 二进制、十进制 128、双精度、Int32、长整型、ObjectId、 来自“bson”的时间戳};
我之前根本没有遇到过这个错误,为什么仅仅因为运行上面的代码就出现这个错误呢?
我尝试运行
npm i --save-dev @types/bson
,但这并没有解决问题。
也可以通过安装 bson 来修复此问题
npm i --save-dev bson
由于某种原因,它似乎没有包含在 mongo deps 中
就我而言,我使用的是
@types/mongodb
版本 3.6.3
,它依赖于旧版本的 @types/bson
。但是,由于 @types/mongodb
将 @types/bson
的依赖版本指定为 '*'
,因此它会安装较新的版本,从而导致错误。
要解决此问题,我们可以使用以下配置将
@types/bson
的版本强制为 1.0.11
:
"resolutions": {
"@types/bson": "1.0.11"
}
我只需在上面添加
// @ts-ignore
即可解决此问题:
import { Binary, Decimal128, Double, Int32, Long, ObjectId, Timestamp } from "bson";
在
@types/mongodb
包装内。