Voilà une bonne nouvelle. La version 22.18.0 de Node.js supporte TypeScript directement, sans configuration complémentaire. Cette fonction est pour le moment expérimentaire mais cela plaira aux développeurs.
Exemple :
$ echo 'const foo: string = "World"; console.log(`Hello ${foo}!`);' > file.ts
$ node file.ts
Hello World!
C'est la première fois que Node supporte TypeScript sans configuration intermédiaire. Cela signifie que les fichiers .ts peuvent être déployés et exécutés. Ce 1er support est encore partiel. La documentation prévient :
- les fichiers TS doivent contenir une syntaxe dite erasable
- pas de vérification des types
- possibilité d'utiliser du code TS une syntaxe TypeScript non erasable
Le code TS est transformé en code JS pour être ensuite exécuté. Node ignore les fichiers tsconfig.json. Cela signifie que tout ce qui dépend des paramètres du fichier de configuration ne sont pas pris en charge. Pour support complet de TS, vous devrez continuer à utiliser un paquet externe.
La documentation est très clair sur les limites : Étant donné que Node.js supprime uniquement les types inline, toutes les fonctionnalités TypeScript qui impliquent le remplacement de la syntaxe TypeScript par une nouvelle syntaxe JavaScript généreront une erreur, à moins que l'indicateur --experimental-transform-types ne soit passé.
Ce qui n'est pas supporté (pour le moment) : les énums complexes, les décorateurs, le fusion de namespace ou encore l'importation de code legacy, les imports aliases.
Plusieurs solutions pour exécuter TypeScript sur Node : ts-node, node.js Native, TSX, Bun, Deno, vite-node et Jiti :