使用打字稿导入 "mongodb" 时出错

Error Importing "mongodb" with typescript

编译任何仅导入 mongodb 的打字稿程序时,我得到 12 个错误,例如:

node_modules/mongodb/mongodb.d.ts:3309:5 - error TS2416: Property 'end' in type 'GridFSBucketWriteStream' is not assignable to the same property in base type 'WritableStream'

使用节点 TLS (v16.13.1) 和一个空目录进行复制很简单,只需 运行:

npm i mongodb typescript
echo "import mongodb  from 'mongodb'" > index.ts
npx tsc index

我无法在我的本地环境中重现您的问题,所以我认为这个问题可能与您项目中的其他包有关。

根据 this issue 上的建议,您应该尝试删除 package-lock.json 并使用 npm 重新生成它。

看起来 mongodb npm 昨晚 (2022-01-06) 发布了 4.3.0,现在解决了这个问题! changelog includes the issue here: #3088

v4 现在编译时没有这些错误!

mongodb 4.3.0 为我解决了这个问题。 我使用猫鼬,但我将 "mongodb": "^4.3.0" 放在我的依赖项中以强制更新。我不知道这样做是否正确,但它在等待猫鼬更新时有效。

我提到了这个 https://github.com/mongodb/node-mongodb-native/pull/3088

npm i @types/node@16.11.7 --save-dev

我必须将我的@types/node 降级到版本 17.0.0

"@types/node": "17.0.0", 为我工作

阅读更多:https://github.com/mongodb/node-mongodb-native/pull/3088