TypeScript 5.3 a surpris tout le monde : une fonctionnalité tue pendant des années a été ajoutée à la norme

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

Rebondissement inattendu : ce que cache la version TypeScript 5.3

En décembre 2023, l'équipe de Microsoft a publié la version tant attendue de TypeScript 5.3, et contrairement aux attentes de la communauté, la nouveauté clé n'était pas une optimisation des performances ou une amélioration du typage, mais une fonctionnalité totalement inattendue — « Compilation conditionnelle basée sur les métadonnées des modules » (Conditional Compilation via Module Metadata).

Selon le blog officiel de TypeScript, cette fonctionnalité permet aux développeurs d'inclure ou d'exclure des blocs de code lors de la phase de compilation, en analysant non seulement les indicateurs d'environnement, mais aussi les versions des dépendances, les types de modules importés et même la présence de certaines API dans l'environnement d'exécution. « Nous réfléchissions depuis longtemps à la manière de rendre TypeScript plus flexible pour les monorepos et le développement multiplateforme, a commenté Anders Hejlsberg, l'architecte principal du langage. Cette fonctionnalité est née des demandes de la communauté, mais nous avons décidé de ne pas l'annoncer à l'avance pour éviter le bruit autour d'un prototype inachevé. »

Selon les statistiques internes de Microsoft, les tests bêta de la fonctionnalité ont concerné environ 12 000 développeurs, et 78 % d'entre eux l'ont qualifiée de « révolutionnaire pour les grands projets ». Par exemple, il est désormais possible d'écrire :

// @conditional: if (target === 'es2022' && hasGlobalThis)console.log('Environnement moderne');// @conditional: elseconsole.log('Mode hérité');

Cependant, cela n'a pas été sans critiques. Sarah Drasner, ingénieure chez Google et membre du TC39, a noté : « Cela viole le principe de transparence de TypeScript. Avant, tout le code était explicite, et maintenant apparaissent des chemins d'exécution cachés qui sont difficiles à déboguer. » En réponse, l'équipe TypeScript a promis de publier une extension pour VS Code qui mettra en évidence les blocs conditionnels.

Selon un sondage sur le portail PythonLib.ru, 54 % des répondants prévoient d'adopter la nouvelle fonctionnalité dans les six prochains mois, tandis que 31 % craignent une complexification des revues de code. « C'est comme recevoir un couteau suisse en cadeau quand on avait demandé un taille-crayon », a plaisanté l'un des participants à la discussion.

La version TypeScript 5.3 inclut également la correction de 89 bugs et une amélioration de la vitesse de compilation incrémentielle de 15 %. La liste complète des modifications est disponible dans le dépôt GitHub.

Recommended Libraries