Qu'est-ce que ts-node et pourquoi en a-t-on besoin ?
\n\nts-node est un moteur TypeScript pour Node.js qui permet d'exécuter des fichiers TypeScript directement, sans compilation préalable en JavaScript. Il fonctionne comme un REPL (Read-Eval-Print Loop) et comme un outil en ligne de commande, assurant une intégration transparente de TypeScript dans l'écosystème Node.js.
\n\nPrincipaux cas d'utilisation :
\n- \n
- Développement rapide et prototypage — pas besoin d'attendre la compilation à chaque modification \n
- Exécution de scripts — exécution de fichiers TypeScript en production (avec prudence) \n
- Tests — exécution de tests écrits en TypeScript \n
- Développement interactif — mode REPL pour expérimenter avec TypeScript \n
- Migration de projets — transition progressive de JavaScript vers TypeScript \n
Contrairement à l'approche standard (compilation via tsc et exécution via node), ts-node rend le processus de développement plus fluide et plus rapide.
Installation de ts-node
\n\nL'installation se fait via npm (gestionnaire de paquets Node.js). Pour les développeurs Python : c'est l'équivalent de pip install.
# Installation globale (disponible partout)\nnpm install -g ts-node\n\n# Installation locale (recommandée pour les projets)\nnpm install --save-dev ts-node\n\n# Installation avec TypeScript (si pas encore installé)\nnpm install --save-dev ts-node typescript\n\n# Pour travailler avec des versions spécifiques de TypeScript\nnpm install --save-dev ts-node@10.9.2 typescript@5.3.3\n\nAprès l'installation, vérifiez la version :
\nts-node --version\n# Sortie : v10.9.2\n\nDémarrage rapide avec un exemple de code
\n\nCréez un fichier hello.ts :
// hello.ts\ninterface Greeting {\n name: string;\n age: number;\n}\n\nfunction greet(person: Greeting): string {\n return `Bonjour, ${person.name} ! Tu as ${person.age} ans.`;\n}\n\nconst user: Greeting = { name: "Alexeï", age: 30 };\nconsole.log(greet(user));\n\nExécutez sans compilation :
\nts-node hello.ts\n# Sortie : Bonjour, Alexeï ! Tu as 30 ans.\n\nPour comparaison, la méthode habituelle nécessiterait deux étapes :
\ntsc hello.ts # compilation en hello.js\nnode hello.js # exécution du fichier compilé\n\nMéthodes et fonctions principales de ts-node
\n\n1. ts-node [file.ts] — Exécution de base d'un fichier
\nDescription : Commande principale pour exécuter un fichier TypeScript. ts-node compile et exécute automatiquement le code.
\nParamètres :
\n- \n
file.ts— chemin vers le fichier TypeScript \n --projectou-P— chemin vers tsconfig.json \n --transpile-only— transpilation uniquement (plus rapide, mais sans vérification des types) \n
Exemple :
\n# Exécution normale\nts-node app.ts\n\n# Avec spécification de la configuration\nts-node --project tsconfig.prod.json app.ts\n\n# Transpilation uniquement (plus rapide)\nts-node --transpile-only app.ts\n\n2. ts-node --eval — Exécution de code depuis une chaîne
\nDescription : Permet d'exécuter du code TypeScript passé sous forme de chaîne, sans créer de fichier.
\nParamètres :
\n- \n
-eou--eval— chaîne contenant le code TypeScript \n -pou--print— afficher le résultat de l'exécution \n
Exemple :
\n# Expression simple\nts-node -e "console.log('Bonjour depuis ts-node!')"\n\n# Avec utilisation des fonctionnalités TypeScript\nts-node -e "\ninterface User { name: string }\nconst user: User = { name: 'Marie' };\nconsole.log(user.name);\n"\n\n# Avec affichage du résultat\nts-node -p "1 + 2"\n\n