État de TypeScript 2026 : langage #1 sur GitHub, Project Corsa et la facture de la supply chain

État de TypeScript 2026 : langage #1 sur GitHub, Project Corsa et la facture de la supply chain

lschvn6 min de lecture

2025 fut l'année où TypeScript a cessé d'être une alternative populaire pour devenir le langage par défaut de l'écosystème JavaScript. Cette dominance apporte de nouvelles pressions : goulots d'étranglement des performances du compilateur, examen de la supply chain, et vulnérabilités de sécurité qui vivent à l'intersection des types et du runtime.

TypeScript devient le langage #1 sur GitHub

En août 2025, GitHub a rapporté que TypeScript était devenu le langage le plus utilisé sur la plateforme avec 2 636 006 contributeurs mensuels, une hausse de 66% en glissement annuel. GitHub l'a qualifié du changement de langage le plus significatif en plus d'une décennie. JavaScript domine encore en nombre de dépôts, mais la trajectoire est claire : les nouveaux projets utilisent de plus en plus TypeScript par défaut, et l'écosystème d'outils a suivi.

Project Corsa : la réécriture en Go arrive

Microsoft a annoncé Project Corsa début 2025 : un port natif du compilateur TypeScript et du service linguistique vers Go. L'objectif est approximativement 10x plus rapide en compilation et une compilation incrémentielle quasi instantanée. Les benchmarks initiaux étaient frappants, le codebase VS Code est passé de 77,8 secondes à 7,5 secondes ; Playwright de 11,1 secondes à 1,1 seconde.

TypeScript 6.0, sorti au Q1 2026, est prévu comme dernière version majeure sur l'actuel codebase compilé en JavaScript. TypeScript 7.0 (cible mi-2026) devrait être la première version construite sur le compilateur Go. Les auteurs de plugins utilisant l'API Compilateur devront vérifier la compatibilité avec la nouvelle implémentation.

Exécution TypeScript native dans Node.js

Node.js 22.18 a stabilisé l'exécution TypeScript native via le type stripping. Au lieu de transpiler .ts en .js avant l'exécution, Node.js comprend maintenant quelle syntaxe TypeScript est effaçable (types, interfaces) et laquelle est runtime (enums, namespaces) et gère ces derniers directement. Le flag --erasableSyntaxOnly formalise la contrainte.

Pour beaucoup de projets, cela élimine ts-node et tsx comme dépendances de dev. Pour les bibliothèques aware des types, cela signifie repenser les patterns comme l'utilisation des enums au profit d'objets as const et de modules ES.

La Facture de la Supply Chain

Trois incidents ont marqué 2025 :

s1ngularity : une campagne automatisée qui a compromis plusieurs paquets largement utilisés en exploitant les failles d'authentification des mainteneurs.

debug/chalk : deux paquets fondamentaux, utilisés dans pratiquement chaque projet JavaScript, ont été compromis par des prises de contrôle de comptes de mainteneurs. Le rayon de destruction était énorme.

Shai-Hulud : une campagne documentée par la CISA ciblant l'écosystème npm en septembre 2025, utilisant les vulnérabilités des workflows CI pour publier des versions malveillantes sous des noms de paquets légitimes.

La réponse a été systémique : npm applique désormais l'authentification à deux facteurs au moment de la publication de manière plus large, la communauté pousse pour des jetons granulaires à courte durée de vie, et les organisations revoient leurs arbres de dépendances avec une nouvelle urgence.

React2Shell : le réveil CVSS 10.0

Les applications Next.js utilisant les React Server Components se sont avérées vulnérables à la CVE-2025-55182, une vulnérabilité d'exécution de code à distance avec un score CVSS de 10.0. La faille résidait dans le traitement de la sérialisation des données côté serveur dans RSC, une classe de vulnérabilité théoriquement comprise mais jamais weaponizée à ce niveau de sévérité.

Le correctif a atterri en décembre 2025, mais l'incident a remodelé la façon dont la communauté pense la frontière entre serveur et client dans le modèle de composants de React. Les frameworks JavaScript full-stack sont désormais sous une surveillance plus étroite des chercheurs en sécurité.

Perspective : TypeScript 7 et le futur strict

Le rapport State of TypeScript 2026 décrit une feuille de route 2026 dominée par la migration. TypeScript 7 n'est pas qu'une mise à niveau de performance, c'est une version avec des changements cassants. Le mode strict sera activé par défaut, le ciblage ES5 sera abandonné (ES2015+ uniquement), baseUrl sera supprimé, et la résolution de module Node classique sera retirée.

L'année 2025 a montré que la dominance de TypeScript ne fait plus de doute. Ce qui reste à voir, c'est comment l'écosystème gère la complexité qui l'accompagne.

Questions fréquentes

Articles connexes

Plus de couverture avec des sujets et tags en commun.

Node.js 26.3.0 : Buffer Pool double, permission.drop() arrive, les Macs Intel en péril
security

Node.js 26.3.0 : Buffer Pool double, permission.drop() arrive, les Macs Intel en péril

Node.js 26.3.0 apporte un Buffer.poolSize par défaut de 64 KiB, une méthode permission.drop() pour abandonner les capacités une par une, un avertissement sur les binaires universels macOS, et un WebCrypto renforcé. npm passe à 11.16.0.
Node.js Mars 2026 : Six Correctifs de Sécurité Sur Toutes les Branches Actives
security

Node.js Mars 2026 : Six Correctifs de Sécurité Sur Toutes les Branches Actives

Node.js a publié des correctifs de sécurité d'urgence pour v25, v24, v22 et v20 le 24 mars 2026, corrigeant deux CVE à haute sévérité dont un crash TLS SNICallback et un risque de pollution prototype HTTP. Détails.
Fastify v5.9.0 ajoute `request.mediaType` et `onMaxParamLength`, durcit la confiance dans les en-têtes `forwarded`, découpe les grandes réponses HTTP/2 et migre les tests de types vers TSTyche
security

Fastify v5.9.0 ajoute `request.mediaType` et `onMaxParamLength`, durcit la confiance dans les en-têtes `forwarded`, découpe les grandes réponses HTTP/2 et migre les tests de types vers TSTyche

Fastify v5.9.0, publié le 2026-06-28 (github.com/fastify/fastify), est la première version mineure de la ligne v5 en 2026 et un cycle substantiel de 65 PR. Les fonctionnalités principales sont `request.mediaType` (un accesseur typé pour le type de média négocié, [#6653](https://github.com/fastify/fastify/pull/6653) par climba03003), l'option de route `onMaxParamLength` ([#6716](https://github.com/fastify/fastify/pull/6716) par climba03003), et un correctif de sécurité qui ne fait plus confiance à `X-Forwarded-Host` et `X-Forwarded-Proto` quand le socket entrant est absent ([#6684](https://github.com/fastify/fastify/pull/6684) par mcollina). Le cycle livre un correctif de découpage en morceaux du buffer HTTP/2 pour les grandes réponses ([#6746](https://github.com/fastify/fastify/pull/6746) par mcollina), trois gains de performance liés au schéma (parsing différé du ContentType dans `getSchemaSerializer` #6692, mise en cache des objets `ContentType` analysés dans `ContentTypeParser` #6694, garde `typeof` avant `toString.call` dans `send` / `onSendEnd` #6693 par aquie00t), Node.js 26 ajouté à la matrice de tests ([#6728](https://github.com/fastify/fastify/pull/6728) par Fdawgs) et Node.js 20 retiré de la matrice yarn CI ([#6662](https://github.com/fastify/fastify/pull/6662) par Tony133), la migration de la suite de tests de types d'assertions `expect-type` artisanales vers [TSTyche](https://github.com/mrazauskas/tstyche) ([#6532](https://github.com/fastify/fastify/pull/6532) par mrazauskas, avec les suites #6726 et #6727), et un bump de fastify-plugin v6.0.0 purement TypeScript. Autres correctifs notables : déduplication de `res.end` du trailer (#6676), garde de complétion dupliquée du trailer (#6714), `error.code` sur les erreurs de routage (#6678), `hasRequestDecorator` / `hasReplyDecorator` détectant les propriétés natives assignées par constructeur (#6753), `getValidationFunction()` autorisé à retourner `undefined` (#6665), et un nettoyage du `_meta` du socket qui ferme une fuite keep-alive (#6799).

Commentaires

Connexion Connectez-vous pour participer à la conversation.

Pas encore de commentaires. Soyez le premier à partager vos pensées.