javascript - structuredClone() ikke tilgjengelig i TypeScript


Jeg kjører node.js v17.2.0 og TypeScript v4.5.4. Jeg prøver å bruke structuredClone() på en Map, og det ser ikke ut til å fungere. ES2021 er målrettet i tsconfig.json, og inkludert i lib. Er denne funksjonen rett og slett ikke tilgjengelig i TypeScript? Er det noe annet jeg må inkludere for å få den til?

@types/node er også installert, og jeg har sørget for at det fungerer i node.js-miljøet.

Svar #1

structuredClone er nå tilgjengelig i @types/node v17.0.29:

Kjør følgende kommando for å få tilgang til det:

npm i --save-dev @types/[email 

Svar #2

structuredClone vil være tilgjengelig i lib.dom i TypeScript v4.7 (per 2022-05-19 er det for øyeblikket i beta, men vil snart bli tilgjengelig). Du kan se hvor structuredClone ble lagt til i TypeScript her.

Hvis du trenger å legge det til prosjektet ditt midlertidig til du kan oppgradere TypeScript, kan du gjøre det ved å legge følgende definisjoner fra committen som er lenket ovenfor inn i en structuredClone.d.ts-fil i prosjektet ditt (grunnnavnet spiller ingen rolle, men .d.ts gjør det):

interface WindowOrWorkerGlobalScope {
    structuredClone(value: any, options?: StructuredSerializeOptions): any;
}
declare function structuredClone( value: any, options?: StructuredSerializeOptions): any;

(StructuredSerializeOptions er allerede definert av lib.dom.d.ts for postMessage, så vi trenger ikke å legge det til.)

Da kan du bare fjerne den filen når du har oppgradert senere.

Relaterte artikler