ts-node pour TypeScript : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que ts-node et pourquoi en a-t-on besoin ?

\n\n

ts-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\n

Principaux 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
\n\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.

\n\n

Installation de ts-node

\n\n

L'installation se fait via npm (gestionnaire de paquets Node.js). Pour les développeurs Python : c'est l'équivalent de pip install.

\n\n
# 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\n

Après l'installation, vérifiez la version :

\n
ts-node --version\n# Sortie : v10.9.2
\n\n

Démarrage rapide avec un exemple de code

\n\n

Créez un fichier hello.ts :

\n\n
// 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\n

Exécutez sans compilation :

\n
ts-node hello.ts\n# Sortie : Bonjour, Alexeï ! Tu as 30 ans.
\n\n

Pour comparaison, la méthode habituelle nécessiterait deux étapes :

\n
tsc hello.ts    # compilation en hello.js\nnode hello.js   # exécution du fichier compilé
\n\n

Méthodes et fonctions principales de ts-node

\n\n

1. ts-node [file.ts] — Exécution de base d'un fichier

\n

Description : Commande principale pour exécuter un fichier TypeScript. ts-node compile et exécute automatiquement le code.

\n

Paramètres :

\n
    \n
  • file.ts — chemin vers le fichier TypeScript
  • \n
  • --project ou -P — chemin vers tsconfig.json
  • \n
  • --transpile-only — transpilation uniquement (plus rapide, mais sans vérification des types)
  • \n
\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\n

2. ts-node --eval — Exécution de code depuis une chaîne

\n

Description : Permet d'exécuter du code TypeScript passé sous forme de chaîne, sans créer de fichier.

\n

Paramètres :

\n
    \n
  • -e ou --eval — chaîne contenant le code TypeScript
  • \n
  • -p ou --print — afficher le résultat de l'exécution
  • \n
\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

3. ts-node --compiler-options

Recommendations