Node.js ajoute un support expérimental de TypeScript
(github.com/nodejs)Module : ajout de --experimental-strip-types
-
Exécution de fichiers TypeScript dans Node.js
- Il est possible d’exécuter des fichiers TypeScript en activant le flag
--experimental-strip-types - Node.js transforme le code source TypeScript en code source JavaScript
- Aucune vérification de type n’est effectuée pendant la transformation, les types sont simplement supprimés
- Il est possible d’exécuter des fichiers TypeScript en activant le flag
-
Motivation
- Il est important de pouvoir exécuter des fichiers TypeScript sans dépendances externes ni loader
- L’objectif est que les utilisateurs puissent lancer
node foo.ts
-
Signification du type stripping
- Le type stripping consiste à supprimer tous les types et à convertir l’entrée en module JavaScript
- Exemple :
const foo: string = "foo";est transformé enconst foo = "foo";
-
Pourquoi le choix de @swc/wasm-typescript
- Pour sa simplicité
- D’autres outils nécessitent d’ajouter Rust ou Go, tandis que @swc/wasm-typescript ne requiert qu’un petit package avec des fichiers wasm et js
- Il est aussi utilisé par Deno, ce qui le rend fiable
-
Limites
- Les fonctionnalités propres à TypeScript comme les enums et les namespaces ne sont pas transformées
- Les imports sans extension ne sont pas pris en charge
-
Plans à venir
- Une implémentation dans la couche native est possible
- La prise en charge des source maps pourrait être ajoutée
Résumé de GN⁺
- Présentation d’une nouvelle fonctionnalité permettant d’exécuter des fichiers TypeScript dans Node.js
- Les fichiers TypeScript peuvent être exécutés après transformation en JavaScript, sans vérification de type
- Cela simplifie l’environnement de développement en permettant d’exécuter des fichiers TypeScript sans dépendances externes
- Cette fonctionnalité est implémentée avec @swc/wasm-typescript, avec une éventuelle implémentation future dans la couche native
- Elle peut être utile pour les projets qui mélangent TypeScript et JavaScript.
1 commentaires
Avis Hacker News
Supprimer les types de TypeScript est impossible sans la syntaxe propre à TypeScript. L’effacement des types n’est pas une opération au niveau des tokens, et la syntaxe TypeScript continue d’évoluer
foo < bar & baz > ( x )était interprété différemment dans TypeScript 1.5Si Node.js pouvait exécuter directement des fichiers TypeScript, le compilateur TypeScript n’aurait pas besoin de supprimer les types et de convertir en JavaScript
Je me demande comment l’écosystème NPM réagirait si cette fonctionnalité devenait le comportement par défaut
engine: nodejs >= 25dans package.json en supprimant l’étape de build ?Ce serait un énorme gain si Node pouvait inspecter les types depuis le JS
L’expérience développeur (DX) de Bun est sans précédent dans ce domaine, et couvre la plupart des cas d’usage
J’adore TypeScript et j’attends depuis longtemps un runtime TypeScript
Ma fonctionnalité préférée de deno arrive directement dans Node
Cela a été un mois très important pour Node
Je suis l’auteur de la PR, AMA
J’ai commencé à utiliser Node.js pour le backend il y a longtemps, et cela offrait beaucoup d’avantages par rapport à PHP