11 Марта вышел аннонс Typescript 7, в котором рассказали о разработке нового tsgo
компилятора.
Андерс Хейлсберг (разработчик языков TurboPascal, C#) объявил о следующем этапе в развитии Typescript, направленном на кардинальное повышение производительности.
Основная ценность Typescript — это удобный опыт разработки, с ростом кодовой базы эта ценность становится всё более очевидной. Но, как показала практика, текущая реализация часто не справляется с очень крупными проектами. Разработчики сталкиваются с долгим временем загрузки, медленным автокомплитом и проблемами с производительностью.
Нативный порт компилятора на Go - tsgo
доступен в репозитории на GitHub - typescript-go. Уже сейчас его можно потестировать и попытаться собрать какой-нибудь проект, но пока реализовано 80% функционала языка. А завершить разработку tsgo обещают в пределах 2025 года.

Насколько быстрее?
Нативная реализация уже способна загружать многие популярные проекты Typescript, включая сам компилятор. Вот сравнительные данные по времени выполнения для различных проектов на GitHub:
Проект | Кол-во строк кода | TSC | TSGO | Ускорение |
---|---|---|---|---|
VS Code | 1,505,000 | 77.8 с | 7.5 с | 10.4x |
Playwright | 356,000 | 11.1 с | 1.1 с | 10.1x |
TypeORM | 270,000 | 17.5 с | 1.3 с | 13.5x |
date-fns | 104,000 | 6.5 с | 0.7 с | 9.5x |
tRPC (сервер + клиент) | 18,000 | 5.5 с | 0.6 с | 9.1x |
rxjs (observable) | 2,100 | 1.1 с | 0.1 с | 11.0x |
Хотя функционал ещё не полный, эти цифры показывают, что ускорение действительно впечатляющее. Это открывает новые возможности, такие как мгновенные списки ошибок по всему проекту, продвинутый рефакторинг и глубокий анализ кода, которые раньше были слишком ресурсоёмкими.
Скорость в редакторах
Большую часть времени разработчики проводят в редакторах, и именно здесь производительность критически важна. Новый компилятор обещает быстрое открытие крупных проектов. Например, для кодовой базы VS Code время загрузки сокращается с 9,6 секунд до 1,2 секунды — улучшение в 8 раз. Это значит, что с момента открытия редактора до первого нажатия клавиши работа станет значительно быстрее. Потребление памяти также уменьшилось примерно вдвое, хотя оптимизация ещё впереди. Операции языкового сервера, такие как автодополнение, переход к определению и поиск ссылок, тоже станут быстрее. Кроме того, они переходят на Language Server Protocol (LSP), что улучшит интеграцию с другими языками.
Дорожная карта версий
Последний релиз — Typescript 5.8, скоро выйдет 5.9. Текущая версия на JavaScript продолжит развитие в линейке 6.x, а Typescript 6.0 принесёт некоторые изменения для синхронизации с нативной версией. Когда нативная реализация достигнет достаточного уровня, её выпустят как Typescript 7.0. Пока это в разработке, и будут анонсироваться этапы стабильности и новых функций.
Для ясности, версии будут называться Typescript 6 (JS) и Typescript 7 (native). Внутренне могут упоминаться кодовые имена “Strada” (оригинальный Typescript) и “Corsa” (нативный Go).
Doom запустили на типах TS
Также недавно всех удивил необычный проект от Michigan TypeScript. На его YouTube канале вышло видео под названием TypeScript types can run DOOM. В нём он показал свой огромный проект, который с помощью типов в TS рендерит Doom. Проект оказался настолько огромным, что на рендеринг первого кадра уходило несколько дней.
Разработчик уже успел высказаться о новом компиляторе:

Заключение
Typescript продолжает активно развиваться. Ждем, когда будет возможность транслировать TS в Go так, чтобы потом скомпилировать проект в бинарник и запускать бекенд на сервере (хотя такая возможность уже есть в Deno, но если это будет реализовано через Go, то, мне кажется, в TS могли бы появиться свои горутины для параллельного выполнения кода). А что думаете вы?