Node.js连接MongoDB报TS2305:tls无TLSSocketOptions导出如何解决
根因说明
你本地运行的Node版本是14.18.1,但安装的@types/node版本为v11,两者的类型定义不匹配。v11版本的@types/node中tls模块未对外导出TLSSocketOptions类型,因此MongoDB 4.x版本的类型声明引用该类型时会触发编译错误。
解决方案
方案1(推荐):升级类型定义包匹配Node版本
执行以下命令安装和Node 14匹配的类型定义:npm install --save-dev @types/node@14安装完成后重新执行编译命令即可。
方案2:跳过第三方库类型检查
在项目的tsconfig.json的compilerOptions配置项中添加以下规则:"skipLibCheck": true该配置会跳过
node_modules目录下所有类型声明文件的检查,不会影响业务代码的类型校验逻辑,可快速解决这类第三方包类型兼容问题。方案3:降级MongoDB版本
如果你暂时无法升级@types/node版本,可以将MongoDB驱动降级到适配v11类型定义的3.x版本:npm install mongodb@3.7.3
以上方案任选其一执行后,建议删除node_modules目录和锁文件,重新安装依赖后再执行编译校验。
内容的提问来源于stack exchange,提问作者Pete
相关产品推荐
相关产品推荐

