TypeScript vs JavaScript : la vraie différence

TypeScript vs JavaScript

TypeScript vs JavaScript : ce qui change, ce que tsc produit | We.Inc

Comparez côte à côte TypeScript et le JavaScript qu'il produit, découvrez ce que le vérificateur de types détecte, pourquoi les types disparaissent à l'exécution, et quand du JavaScript pur suffit.

TypeScript, c'est JavaScript plus un système de types. Vous écrivez du JavaScript ordinaire avec des annotations de type facultatives, et le compilateur tsc les vérifie, puis les retire pour produire du JavaScript pur. Les navigateurs et Node exécutent ce résultat, les types n'existent donc jamais à l'exécution. Le gain, c'est de repérer les erreurs pendant que vous codez, pas un code plus rapide.

Côte à côte

Choisissez un exemple ci-dessous pour voir un fichier TypeScript à côté du JavaScript que tsc a écrit pour lui. La plupart du temps, le résultat est votre code sans les annotations. Quelques fonctionnalités, comme les enums, génèrent du vrai code, et cette différence compte au moment de choisir vos outils.

Questions fréquentes

TypeScript est-il un langage différent de JavaScript ?

C'est un sur-ensemble. Tout programme TypeScript devient du JavaScript, et TypeScript ajoute une syntaxe pour décrire la forme des valeurs. Apprenez d'abord JavaScript ; les types viennent s'ajouter par-dessus au lieu de le remplacer.

TypeScript rend-il mon site plus rapide ?

Non. Les annotations sont retirées avant l'exécution du code, le navigateur exécute donc le même JavaScript que celui que vous auriez écrit à la main. Les avantages sont moins de bugs qui atteignent les utilisateurs et des refactorisations plus sûres.

tsc refuse-t-il de compiler en cas d'erreur de type ?

Pas par défaut. tsc signale l'erreur et écrit quand même le fichier .js, ce qui rend possible une migration progressive. Activez noEmitOnError si vous voulez qu'une vérification en échec bloque la sortie.

Node peut-il exécuter des fichiers .ts sans étape de build ?

Les versions récentes de Node retirent la syntaxe de type effaçable et exécutent le fichier, avec le type stripping activé par défaut depuis v23.6.0 et v22.18.0. Node ne vérifie pas les types, et la syntaxe qui nécessite du code généré, comme les enums, est rejetée.

Quand le JavaScript pur est-il le meilleur choix ?

Les petits scripts, les prototypes rapides et les pages avec quelques lignes d'interactivité rentabilisent rarement la configuration. Dès qu'un projet compte plusieurs fichiers, plusieurs personnes ou des données échangées entre modules, le vérificateur commence à faire gagner un temps réel.

Ce que fait réellement tsc

Les types sont effacés, alors validez les vraies données

Les fonctionnalités qui ne sont pas simplement effacées

Ajouter TypeScript à un projet JavaScript

Installer et créer un tsconfig

Installe le compilateur localement, écrit un tsconfig.json de départ et lance une vérification sans écrire de fichiers.

allowJs permet aux anciens fichiers .js de cohabiter avec les nouveaux fichiers .ts pendant une migration ; noEmit laisse la production des fichiers à votre bundler.

Vérifier les données que le compilateur ne voit pas

Une garde à l'exécution qui affine le type

La fonction vérifie réellement la valeur, et le type de retour indique au compilateur ce qu'elle a prouvé.

Annotations

Les types du paramètre et du retour sont vérifiés, puis supprimés. Le corps reste intact.

Interface

Une interface ne produit aucune sortie. Elle n'existe que pour le vérificateur.

Enum

Un enum classique devient un vrai objet avec un mapping inverse : c'est donc du code généré, pas de la syntaxe effacée.

const enum

tsc remplace les membres d'un const enum par des nombres et laisse un commentaire avec le nom d'origine.

Erreur de type

tsc signale : Argument of type 'string' is not assignable to parameter of type 'number'. Il écrit quand même le fichier, sauf si noEmitOnError est activé.

TypeScript et le JavaScript qu'il devient

Choisissez un exemple

Le TypeScript que vous écrivez

Le JavaScript produit par tsc (cible es2022)

Copier le TypeScript

Copier le JavaScript

{n} lignes en entrée, {v} lignes en sortie

Commencer gratuitement · Sans carte bancaire

Voir aussi: Guides

Produit

Pour qui

Fonctionnalités

Ressources

Entreprise

Plan du site