Статья от VS Code о том, как они мигрируют на новый TS 7. Т. к. VS Code и TypeScript принадлежат одной материнской компании (Microsoft), им очень удобно коллаборировать друг с другом. Более того, VS Code изначально был на TypeScript и шёл с ним рука об руку весь свой путь. В статье рассказывается, как за полгода они переехали на TS 7.
Зачем вообще это понадобилось VS Code:
- Хотели как можно скорее переехать на новый TS 7, который написан на Go и работает быстрее
- Переезжать по шагам легче, чем делать большой прыжок с большим переездом — особенно в большом проекте
TS 7 анонсировали весной 2025. Летом уже был работающий typecheck, который команда VS Code активно тестировала. Команда VS Code репортила проблемы, команда TS тут же их чинила.
Также команда VS Code сделала расширение для работы с TS 7, которое позволяет легко переключать TS между версиями и легко репортить проблемы.
Далее проект VS Code переехал на TS 6. TypeScript 6 — версия, которая всё ещё написана на TypeScript, но поведение которой близко к будущему TS 7.
Далее подключили TS 6 и TS 7 параллельно. Сборку всё ещё делали как раньше, но начали проводить typecheck расширений дополнительно через TS 7 — и оба билда и проверки должны всегда проходить в CI. Так находили расхождения в поведении. Самая частая ошибка, из-за которой ломался CI — различие в форматировании. Я правда не понял, в чём именно, если TS 7 делал лишь typecheck.
К началу 2026 TS 7 уже стал более-менее стабильным. Расширения на него мигрировали по одному. Во время переноса упростили тулы для сборки:
Было:
-
tsc — тайпчек и dev-сборка-
webpack — prod-сборка-
esbuild — быстрый emitСтало:
-
tsgo — тайпчек и dev-сборка-
esbuild — prod-сборкаНа текущий момент весь проект переключился на TS 7.
Цифры:
Typecheck основного проекта:
# TS 6
tsc --noEmit -p src/tsconfig.json → 36 сек
# TS 7
tsgo --noEmit -p src/tsconfig.json → 5 сек
npm run watch (main + ~50 extensions):- TS 6: ~80 сек
- TS 7: ~20 сек
- re-check после initial watch: ~1 сек
Language tooling в редакторе:
- было ~60 сек
- стало ~10 сек
https://code.visualstudio.com/blogs/2026/06/26/iterating-faster-with-ts-7
#development #typescript #tsgo #vscode #performance