在 Node 20 上运行 Jest 测试时出现“Object.groupBy 不存在”错误

问题描述 投票:0回答:1

我有一些使用

Object.groupBy
方法的代码。这是使用 typescript 5.5 的代码库,一切正常。

最近我尝试添加一些测试,但收到错误

Property 'groupBy' does not exist on type 'ObjectConstructor'.

Jest 设置为使用

ts-jest
来转换打字稿代码:

  "jest": {
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js"
    ],
    "transform": {
      "^.+\\.(ts|tsx|js)$": [
        "ts-jest",
        {
          "tsconfig": "<rootDir>/tsconfig.json",
          "isolatedModules": true
        }
      ]
    }

tsconfig 是:

{
    "compilerOptions": {
        "target": "ES2018",
        "module": "commonjs",
        "strict": true,
        "declaration": false,
        "esModuleInterop": true,
        "noImplicitOverride": true,
        "lib": [
            "ESNext",
        ]
    },
    "include": [
        "src"
    ]
}

据我了解,我的测试代码应该使用此 tsconfig 转换为对 es2018 有效的代码,这应该得到节点 20 的完全支持。

是什么导致了我的失败?我该如何解决它?

node.js typescript jestjs ts-jest
1个回答
0
投票

根据 MDN,

Object.groupBy
仅在 Node.js 21.0.0 中引入。
Node.js 21 发行说明中也引用了这一点(请参阅“显着更改”部分中的“数组分组”)。

长话短说 - 您需要 Node.js 21 才能使用

Object.groupBy
,而不是 Node.js 20。

© www.soinside.com 2019 - 2024. All rights reserved.