ANNÉES 2010

TypeScript

Lorsque Microsoft lance TypeScript en 2010, le paysage du développement web traverse une période de mutation rapide. JavaScript, jadis relégué aux interactions simples dans les navigateurs, s’impose désormais comme un langage incontournable. Les moteurs d’exécution gagnent en performance, les applications web monopage se multiplient, et Node.js ouvre la voie à JavaScript côté serveur. Cette expansion s’accompagne d’un problème : maintenir de vastes bases de code JavaScript est un véritable casse-tête.

Anders Hejlsberg, l’architecte derrière C#, prend la tête du projet avec une ambition claire. Il ne s’agit pas de remplacer JavaScript, mais de l’enrichir. TypeScript se présente comme un sur-ensemble syntaxique de JavaScript : tout code JavaScript valide reste un code TypeScript valide. L’idée maîtresse consiste à ajouter un système de types statiques facultatifs. Les développeurs peuvent annoter leur code, et ces annotations disparaissent à la compilation. Le JavaScript généré ne garde aucune trace du typage.

Cette décision technique reflète une compréhension fine des besoins réels. Le système de types adopte une approche structurelle plutôt que nominative, ce qui correspond mieux aux habitudes des développeurs JavaScript. Dans cet écosystème, les objets naissent souvent directement, sans passer par des classes formelles. TypeScript épouse cette pratique au lieu de la contrarier.

Un choix de conception mérite qu’on s’y attarde. Les créateurs de TypeScript ont délibérément renoncé à garantir une sûreté totale du typage. Ils ont préféré faciliter l’adoption progressive et maintenir la compatibilité avec les bibliothèques existantes. Cette souplesse autorise les équipes à introduire TypeScript dans leurs projets sans tout réécrire d’un coup.

Steve Ballmer, l’ancien PDG de Microsoft, avait comparé les licences open source à « un cancer qui s’attache à tout ce qu’il touche ». Il dénonçait le manque de responsabilité dans les logiciels libres. Pourtant, l’équipe de TypeScript savait qu’elle ne séduirait jamais la communauté JavaScript sans embrasser l’open source. En 2012, Microsoft publie TypeScript sous licence Apache-2.0, d’abord sur CodePlex, ensuite sur GitHub en 2014.

L’adoption croît progressivement. En 2025, le dépôt GitHub récolte plus de 107 000 étoiles et figure parmi les vingt projets les plus appréciés de la plateforme. Le package NPM enregistre plus de 100 millions de téléchargements hebdomadaires. Plus de 61 000 autres packages en dépendent. Ces chiffres traduisent une confiance établie.

Le langage introduit des concepts structurants : interfaces, classes, modules. Son système d’inférence de type réduit les annotations nécessaires tout en préservant les bénéfices du typage statique. Les outils de développement s’enrichissent d’autocomplétion et de navigation dans le code. Le compilateur, écrit en TypeScript, prouve la capacité du langage à gérer des projets complexes. Il analyse le code source, vérifie les types, et génère du JavaScript standard en préservant la sémantique du programme.

La communauté a bâti un écosystème riche autour de TypeScript. Le référentiel DefinitelyTyped rassemble des milliers de fichiers de définition de types pour les bibliothèques JavaScript traditionnelles. Ces déclarations permettent d’utiliser l’existant avec les avantages du typage statique. Les versions successives apportent des fonctionnalités avancées : types génériques, types conditionnels, types utilitaires. Ces ajouts autorisent l’expression de contraintes complexes et renforcent la sécurité du code. Une nouvelle version sort tous les deux mois, assurant une évolution constante.

TypeScript a instauré des pratiques plus rigoureuses dans l’écosystème JavaScript. Certains concepts ont enrichi JavaScript lui-même, comme le montrent les nouvelles versions d’ECMAScript. Cette réussite témoigne de la transformation de Microsoft vers une approche moins fermée du développement logiciel.