我在一个使用typescript的简单NodeJS应用程序中使用jest
运行测试。我的测试抛出一个错误:ReferenceError: structuredClone is not defined
.
我没有得到任何linter错误和代码编译正常罚款。
const variableForValidation = structuredClone(variableForValidationUncloned);
package.json:
"dependencies": {
...
},
"devDependencies": {
"@types/jest": "^29.0.0",
"@types/node": "^18.7.15",
"@typescript-eslint/eslint-plugin": "^5.36.1",
"@typescript-eslint/parser": "^5.36.1",
"eslint": "^8.23.0",
"jest": "^28.0.1",
"nodemon": "^2.0.19",
"serverless-plugin-typescript": "^2.1.2",
"ts-jest": "^28.0.8",
"ts-node": "^10.9.1",
"typescript": "^4.8.2"
}
这个github问题让我觉得这个问题已经解决了:还是我误会了?
我见过一个类似的Stack问题,但使用的是摩卡咖啡:mocha not recognizing structuredClone is not defined
3条答案
按热度按时间xxls0lw81#
structuredClone
已添加到节点17。如果你不能更新,
JSON
破解(stringify then parse)工作,但has some shortcomings可能与你相关:编辑:
我最近了解了json-stringify-safe,它有助于解决循环问题。
tzdcorbm2#
我想不出来,所以我设置了自己的全局:
我想这可能是因为我的
tsconfig
中的target
在添加structuredClone之前将我的 typescript 文件转换为javascript/node版本?p8h8hvxi3#
对于同样的错误,在测试文件中使用下面的代码可以解决这个问题。
参考文献