You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决NestJS应用中MongoDB版本依赖导致的TS类型不兼容问题

NestJS构建时TypeScript类型不兼容问题求助

执行构建命令 npm run build 时,出现如下TypeScript编译错误:

src/shared/infrastructure/event-store/events-bridge.ts:31:5 - error TS2322: 类型 'ChangeStream<any, any>' 不能分配给类型 'ChangeStream<Document, ChangeStreamDocument<Document>>'。
  属性 'options' 的类型不兼容。
    类型 'import("C:/Users/***/repositories/nestjs-architecture/node_modules/mongoose/node_modules/mongodb/mongodb").ChangeStreamOptions & { writeConcern?: never; }' 不能分配给类型 'import("C:/Users/***/repositories/nestjs-architecture/node_modules/mongodb/mongodb").ChangeStreamOptions & { writeConcern?: never; }'。
      类型 'ChangeStreamOptions & { writeConcern?: never; }' 不能分配给类型 'ChangeStreamOptions'。
        这些类型的 'session.clientOptions' 属性不兼容。
          类型 'MongoOptions' 缺少类型 'MongoOptions' 中的以下属性: keepAlive, keepAliveInitialDelay

31     this.changeStream = this.eventStore
       ~~~~~~~~~~~~~~~~~

找到 1 个错误。

已排查出问题根源:TypeORM依赖mongodb 5.x.x版本,而Mongoose依赖mongodb 6.x.x版本,二者的mongodb.d.ts类型声明存在差异。尝试将Mongoose回滚至依赖mongodb 5.x.x的旧版本后,又出现了其他TypeScript编译问题。由于不擅长处理TypeScript类型不兼容问题,特此寻求解决指引。

复现步骤

  • 克隆指定仓库
  • 执行 npm install
  • 执行 npm run build
  • 触发上述TypeScript错误

内容的提问来源于stack exchange,提问作者ebola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:02:39