I koden til JavaScript-plattformen Node.js er det implementert en endring som gir mulighet for å kjøre filer med kode skrevet i programmeringsspråket TypeScript. Støtte for TypeScript aktiveres med alternativet "—experimental-strip-types" og innebærer fjerning av språkspesifikke type-definisjoner, dvs. omforming av koden til JavaScript før kjøring. Muligheter i TypeScript som ikke er relatert til typebeskrivelser, slik som navnerom, dekoratører, parameter-egenskaper og enum, støttes foreløpig ikke. Den nye funksjonen kan testes med dagens nattsamlinger av Node.js 23.
For oversettelsen er kompilatoren SWC (Speedy Web Compiler) involvert, skrevet i Rust. For å unngå å legge til ekstra avhengigheter til Node.js, benyttes kompilatorens representasjon swc/wasm-typescript, levert i mellomliggende WebAssembly-kode og allerede brukt til samme formål i Deno-plattformen. Endringen ble lagt til som svar på mange forespørsel fra brukere om å kunne kjøre TypeScript-kode uten å installere eksterne lastere og ekstravernede avhengigheter. Støtten for TypeScript ble implementert fra start i de konkurrerende plattformene Deno og Bun.
Den viktigste forskjellen mellom TypeScript og JavaScript er den eksplisitte definisjonen av typer. Statisk typisering bidrar til å unngå mange feil i utviklingsprosessen, gir mulighet for å bruke ekstra optimaliseringsteknikker, forenkler feilsøking og gjør koden mer lesbar og enklere å vedlikeholde for eksterne utviklere. I implementasjonen av TypeScript i Node.js går disse mulighetene tapt, ettersom typene ikke sjekkes under oversettelsen av kildekoden til JavaScript.
Kilde: opennet.ru
