In de codebasis van het JavaScript-platform Node.js is er een wijziging doorgevoerd die de mogelijkheid toevoegt om bestanden met code in de programmeertaal TypeScript uit te voeren. Ondersteuning voor de taal TypeScript wordt ingeschakeld via de optie 'āexperimental-strip-types' en komt neer op het verwijderen van type-definities die specifiek zijn voor deze taal, d.w.z. de omzetting van de oorspronkelijke code naar JavaScript vóór de uitvoering. Functies van TypeScript die niet met typebeschrijvingen te maken hebben, zoals namespaces, decorateurs, parameter-eigenschappen en enums, worden momenteel nog niet ondersteund. Deze nieuwe mogelijkheid kan worden getest met de meest recente nachtelijke builds van Node.js 23.
Voor de transpilatie wordt de SWC (Speedy Web Compiler) gebruikt, geschreven in de taal Rust. Om extra afhankelijkheden voor Node.js te vermijden, wordt de compiler weergeven als swc/wasm-typescript, geleverd in tussenliggende WebAssembly-code en al gebruikt voor dezelfde doeleinden in het Deno-platform. Deze wijziging is toegevoegd in reactie op talrijke verzoeken van gebruikers om de mogelijkheid te bieden om TypeScript-code uit te voeren zonder externe loaders en extra afhankelijkheden te installeren. In concurrerende platforms Deno en Bun was de ondersteuning voor TypeScript aanvankelijk al geĆÆmplementeerd.
Het belangrijkste verschil tussen TypeScript en JavaScript is de expliciete typebepaling. Statische typecontrole helpt veel fouten tijdens de ontwikkeling te voorkomen, maakt het mogelijk om extra optimalisatietechnieken te gebruiken, vereenvoudigt het debuggen en maakt de code leesbaarder en gemakkelijker te onderhouden voor andere ontwikkelaars. In de implementatie van TypeScript in Node.js gaan deze mogelijkheden echter verloren, omdat typecontrole tijdens de transpilatie van de bronteksten naar JavaScript niet plaatsvindt.
Bron: opennet.ru
