Microsoft a présenté Project Corsa le 11 mars 2025 par l’intermédiaire d’Anders Hejlsberg, créateur de TypeScript. Le projet est devenu disponible en version stable avec TypeScript 7.0 le 8 juillet 2026. Le nouveau compilateur est écrit en Go et produit un binaire natif compilé à l’avance. L’ancien compilateur était écrit en TypeScript et fonctionnait sur Node. La syntaxe et le système de types restent ceux de TypeScript, avec les particularités du typage structurel.
npm install -D @typescript/native-preview
npx tsgo --project ./src/tsconfig.jsonLe gain se concentre sur les vérifications complètes lancées à froid. Microsoft a mesuré environ 77 secondes avec l’ancien compilateur sur le code de VS Code, qui compte près de 1,5 million de lignes. La version native atteint environ 7,5 secondes. Playwright et TypeORM présentent des progrès comparables. Slack a réduit une étape de vérification des types d’environ sept minutes et demie à un peu plus d’une minute. L’auteur décrit aussi un contrôle de monorepo qui prenait auparavant environ une minute et se termine désormais avant qu’il ne relève les yeux de l’écran.
Le paquet de préversion installe un binaire nommé tsgo, dont les commandes ressemblent à celles de tsc. Microsoft prévoit de le renommer en tsc et de l’intégrer au paquet typescript. Le facteur dix concerne surtout les gros contrôles complets et les pipelines CI. Les vérifications incrémentales d’un éditeur étaient déjà rapides sur les petites modifications et progressent donc moins. Le démarrage natif, l’exécution parallèle sur plusieurs cœurs et une gestion plus compacte de la mémoire expliquent une grande partie du résultat.
TypeScript 7.0 ne fournit pas encore de version stable de l’API programmatique du compilateur. Cela concerne les règles ESLint sensibles aux types, ts-morph, ts-jest, ts-patch, les transformateurs AST personnalisés et les couches de vérification utilisées par les modèles Vue, Svelte, Astro et Angular. Microsoft attend cette API dans TypeScript 7.1, quelques mois après la version 7.0. Les outils qui utilisent le compilateur comme bibliothèque peuvent donc cesser de fonctionner après une mise à niveau directe.
Une transition prudente conserve TypeScript 6.x pour ces outils et réserve tsgo aux builds, aux contrôles CI et aux intégrations d’éditeur. Le compilateur natif applique aussi des règles plus strictes à certains anciens usages de JSDoc. Les valeurs ne peuvent plus jouer le rôle de types de la même manière, @enum n’est pas reconnu et plusieurs constructions héritées de Closure provoquent désormais des erreurs.
Le choix de Go découle de l’objectif de porter le code existant avec le moins de changements possible. L’équipe a conservé les algorithmes et le comportement du compilateur, y compris des détails attendus par de nombreux projets. Le ramasse-miettes de Go et son contrôle de l’organisation mémoire conviennent aux nombreuses structures de données cycliques du compilateur. Rust pourrait offrir d’excellentes performances, mais son modèle de propriété compliquerait un port fidèle. C# posait aussi des questions liées à la cible native multiplateforme et à son style plus orienté objet. Go produit un WebAssembly plus lourd que Rust, un point à surveiller pour les éditeurs et playgrounds dans le navigateur. L’adoption de tsgo est pertinente pour les gains de vitesse, tandis que l’ancien compilateur reste nécessaire jusqu’à l’arrivée de l’API et à l’adaptation des outils.




Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.