Québec, Canada

403-1381 1re Avenue

+1 581.849.27.96

bdgouthiere@gmail.com

TypeScript : JavaScript avec un gilet de sauvetage

Ou : Pourquoi ajouter des contraintes à un langage le rend paradoxalement plus libre


JavaScript est un langage à typage dynamique. let x = 5 suivi de x = "hello" est parfaitement légal. La variable change de type sans prévenir. C’est flexible. C’est aussi la source d’une catégorie entière de bugs qui n’explosent qu’en production.

TypeScript est la réponse de Microsoft à ce problème. Sorti en 2012, c’est un surensemble de JavaScript — tout code JavaScript valide est du TypeScript valide, mais TypeScript ajoute un système de typage statique. Vous déclarez les types, et le compilateur vérifie que tout est cohérent avant l’exécution. « Cannot read property of undefined » passe de « bug signalé par un client frustré » à « erreur soulignée en rouge dans l’éditeur ».

Ce que TypeScript ajoute (et ce qu’il ne change pas)

Les types en pratique

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// JavaScript : aucune garantie
function greet(name) {
  return "Hello, " + name.toUpperCase();
}
greet(42); // Runtime error

// TypeScript : erreur à la compilation
function greet(name: string): string {
  return "Hello, " + name.toUpperCase();
}
greet(42); // ❌ Compilation error

L’adoption massive

TypeScript est devenu le standard de fait pour les projets JavaScript d’envergure. Angular l’impose, React et Vue 3 le supportent nativement, la majorité des bibliothèques npm incluent des déclarations de types.

Le dialogue du refactoring

DevOps Dave : J’ai renommé un champ dans l’API. Le backend compile. C’est déployé.

Security Sarah : Le frontend ?

DevOps Dave : C’est du JavaScript, pas de compilation. Ça devrait marcher.

Security Sarah : « Ça devrait. » En TypeScript, le compilateur te dirait exactement où le champ est utilisé et marquerait chaque occurrence en erreur. En JavaScript, tu le découvriras quand les utilisateurs te le diront.

Tableau récapitulatif

ConceptEn une phrase
TypeScriptSurensemble de JavaScript avec typage statique — compile vers JavaScript.
Typage statiqueLes types sont vérifiés à la compilation, pas à l’exécution.
InterfaceContrat qui définit la forme d’un objet (quels champs, quels types).
GenericsTypes paramétriques qui permettent du code réutilisable et type-safe.

Le mot de la fin

TypeScript ne rend pas JavaScript meilleur — il rend les développeurs JavaScript plus confiants. Le langage reste le même en dessous. Ce qui change, c’est la capacité à refactorer sans peur, à comprendre le code des autres sans deviner, et à détecter les erreurs avant qu’elles ne coûtent cher.