StructuredClone() 在 TypeScript 中不可用

Wub*_*bzy 52 javascript node.js typescript

我正在运行 node.js v17.2.0 和 TypeScript v4.5.4。我试图在地图上使用 StructuredClone() ,但它似乎不起作用。ES2021 以 tsconfig.json 为目标,并包含在lib. 这个函数在 TypeScript 中是不可用的吗?我还需要添加其他内容才能获得它吗?

@types/node 也已安装,并且我已确保它可以在 node.js 环境中工作。

在 Node.js 环境中工作的 StructuredClone

Jos*_*osh 48

structuredClone现在存在于@types/node v17.0.29中:

运行以下命令来访问它:

npm i --save-dev @types/node@17.0.29


Bob*_*Bob 29

structuredClone将在 TypeScript v4.7 中提供lib.dom(截至 2022 年 5 月 19 日,它目前处于测试阶段,但很快就会发布)。您可以在此处查看structuredCloneTypeScript 的添加位置。

如果您需要暂时将其添加到您的项目中,直到可以升级 TypeScript,您可以通过将上面链接的提交中的以下定义放入structuredClone.d.ts项目中的文件中来实现此目的(基本名称并不重要,但它.d.ts确实重要):

interface WindowOrWorkerGlobalScope {
    structuredClone(value: any, options?: StructuredSerializeOptions): any;
}
declare function structuredClone( value: any, options?: StructuredSerializeOptions): any;
Run Code Online (Sandbox Code Playgroud)

StructuredSerializeOptions已经由lib.dom.d.tsfor定义postMessage,所以我们不需要添加它。)

然后在稍后升级时删除该文件即可。