Jest.js 错误TS2339:类型"ObjectId"上不存在属性"toHexString"

5sxhfpxr  于 2023-02-06  发布在  Jest
关注(0)|答案(1)|浏览(233)

我遇到了下面的错误。看起来很奇怪。在本地,它工作时没有错误。它只发生在GitHub ci操作容器上。我不知道如何捕捉它。奇怪的是,方法toHexString存在于ObjectId类型中。使用了NestJS和mongoose,所以出于不同的原因有许多相似的类型。但它们都显示它们有该方法。这是类型脚本的问题。

● Test suite failed to run

    src/features/branch-role/services/branch-role.service.ts:28:41 - error TS2339: Property 'toHexString' does not exist on type 'ObjectId'.

    28       roleDTO.branchId = role.branchId?.toHexString();

有一个错误描述。它看起来合乎逻辑,但它没有揭示问题。tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true,
    "skipLibCheck": true,
    "strictNullChecks": false,
    "noImplicitAny": false,
    "strictBindCallApply": false,
    "forceConsistentCasingInFileNames": false,
    "noFallthroughCasesInSwitch": false
  }
}
ars1skjm

ars1skjm1#

有这个相同的错误。我不太清楚是什么问题,但它与bson模块的类型定义没有得到正确的解决有关。手动安装它对我来说很有效。

yarn add -D @types/bson

npm install --save-dev @types/bson

相关问题