TypeScript 6.0 : la dernière version codée en JavaScript avant le basculement vers Go

Microsoft a publié TypeScript 6.0 (disponible depuis le 23 mars 2026). Au‑delà des améliorations habituelles, cette version marque une étape majeure : il s’agit de la dernière itération du compilateur et du language service écrits en JavaScript. La version 7.0, presque prête, sera quant à elle implémentée en Go et vise de meilleures performances (compilation plus rapide, meilleur usage du multithreading et de la mémoire partagée).

Points clés de TypeScript 6.0

  • Dernière version en JavaScript : TypeScript 6.0 est la dernière release dont le compilateur et le language service sont écrits en JavaScript.
  • Version 7.0 en Go (preview) : la v7, « pratiquement achevée », propose un compilateur natif en Go pour des gains de performance et un meilleur support du multithreading. Les aperçus sont testables dans Visual Studio Code et via NPM.
  • Disponibilité : installation via NPM : npm install -D typescript. Vérifiez la version avec npx tsc --version.
  • Vérification de types améliorée : ajustements dans l’inférence et la vérification des types pour les expressions de fonction dans des appels génériques, notamment pour les expressions JSX génériques. Cela détectera davantage de bugs mais peut exiger parfois des arguments de type explicites.
  • Dépréciation étendue : la syntaxe d’assertion d’importation (import ... assert {...}) est désormais étendue en dépréciation aux appels dynamiques (import(..., { assert: {...} })).
  • Mise à jour des types DOM : la lib DOM est alignée sur les normes Web récentes, avec des ajustements sur les API Temporal.
  • Sensibilité au contexte de this : les fonctions qui n’utilisent jamais this ne sont plus considérées comme sensibles au contexte, ce qui influence l’inférence de types.
  • Nouveau flag de migration : ajout du drapeau --stableTypeOrdering pour faciliter les migrations entre la 6.0 et la 7.0.
  • Support es2025 : option es2025 ajoutée pour target et lib, même si la norme ECMA correspondante n’apporte pas forcément de nouvelles fonctionnalités utiles immédiatement.
  • Réorganisation des fichiers lib DOM : le contenu de lib.dom.iterable.d.ts et lib.dom.asynciterable.d.ts a été intégré dans lib.dom.d.ts ; les fichiers itérables restent vides mais référencés si nécessaire.
  • Dépréciation des modules/namespace hérités : l’utilisation de module à la place de namespace est fortement déconseillée (risque de conflit avec une proposition ECMAScript pour les blocs module).

Impacts pour les équipes et recommandations pratiques

  • Tester tôt TypeScript 7.0 en preview : si vous êtes prêts à expérimenter, essayez les aperçus natifs de la v7 dans VS Code ou via npm (en gardant des branches CI séparées) pour identifier tôt problèmes de compilation ou de performance.
  • Évaluer les appels génériques et JSX : recherchez les appels génériques susceptibles d’exiger désormais des arguments de type explicites. Ajoutez des tests unitaires et une compilation dans vos pipelines CI pour détecter ces cas.
  • Réviser tsconfig.json : vérifiez les options target / lib (notamment es2025) et adaptez la liste lib si vous utilisiez lib.dom.iterable ou lib.dom.asynciterable.
  • Gérer les dépréciations : remplacez les usages de syntaxe héritée (module) par namespace ou des syntaxes modernes ; évitez les assertions d’importation dépréciées dans les imports dynamiques.
  • Profiter du flag –stableTypeOrdering : activez --stableTypeOrdering pour lisser la migration vers 7.0 et réduire les différences d’ordre de types entre versions.
  • Mettre à jour la chaîne d’outils : assurez‑vous que linters, bundlers et extensions VS Code sont compatibles. Surveillez les mises à jour du language service TypeScript pour VS Code.
  • Surveillance des API DOM/Temporal : si votre code dépend des nouvelles APIs Web ou Temporal, testez leur comportement avec la nouvelle définition de types.

Exemples de commandes utiles

npm install -D typescript
npx tsc --version
# Activer le flag de migration
npx tsc --stableTypeOrdering

Ressources et suite

  • Testez la v7 en aperçu dans Visual Studio Code si vous souhaitez évaluer les améliorations de performance.
  • Consultez le changelog officiel et le dépôt TypeScript (GitHub) pour la liste complète des changements et les instructions de migration.
  • Surveillez vos pipelines CI pour détecter toute régression liée aux modifications d’inférence de types et aux dépréciations.

Conclusion

TypeScript 6.0 est à la fois une version d’évolution fonctionnelle (meilleures vérifications de type, mises à jour DOM) et une version de transition : c’est la dernière release basée sur l’implémentation JavaScript avant le passage à un compilateur en Go (v7). Les équipes doivent préparer leurs projets (tests, tsconfig.json, dépréciations) et profiter des aperçus de la v7 pour anticiper les gains de performances et les changements de comportement.

Source : lemondeinformatique.fr