Головна / Статті / Усередині переписування на Go у TypeScript 7: прискорення без змін коду

Усередині переписування на Go у TypeScript 7: прискорення без змін коду

Дізнайтеся, як компілятор TypeScript 7 на основі Go забезпечує у 8–12 разів швидшу компіляцію, чому зміна архітектури є ефективною, та як безпечно оновлювати існуючі проекти.

836 слів

Компілятор тепер працює на двигуні, заснованому на Go; ваш код не потребує жодних змін, а часи компіляції значно скоротилися

Значні оновлення інструментарію, які з’являються лише кожні кілька років, зазвичай змінюють ваш щоденний робочий процес, і TypeScript 7 відповідає цій тенденції. Microsoft перебудував компілятор для значно кращої продуктивності — повна компіляція виконується на 8–12 разів швидше — без необхідності вносити зміни до функцій мови, якими ви вже користуєтесь.

Що саме було випущено

TypeScript 7 з’явився 8 липня 2026 року, замінивши компілятор на основі JavaScript на нативну реалізацію на Go, створену в рамках внутрішнього проекту під назвою Project Corsa. Варто підкреслити, що це точна копія, а не переробка: логіка перевірки типів та семантика мови були перекладені рядок за рядком, тож ваші файли .ts будуть поводитися точно так само, як і раніше. Змінилась лише базова система, яка виконує цю логіку, а не сама логіка.

Згідно з внутрішніми тестами Microsoft, проведеними на самому кодовому базисі VS Code, час завантаження проектів скоротився з майже хвилини до приблизно десяти секунд. Це основний результат. У практичному плані затримка, яку раніше спостерігалося під час виконання команди tsc --watch після зміни гілки, значно зменшується.

Чому він настільки швидший

Дві архітектурні зміни пояснюють більшу частину покращення швидкості.

  • Компільований нативний код замість виконання через Node.js та двигун V8
  • Паралелізм із спільною пам’яттю, який дозволяє паралельно виконувати розбір коду, перевірку типів та генерацію коду на кількох ядрах CPU

У цьому випуску також представлені нові флаги --checkers та --builders, які дозволяють контролювати кількість паралельних робочих потоків, що виконують перевірку типів та створення проектних посилань. Режим спостереження також було оновлено: тепер він використовує механізм спостереження за файлами на основі Go, розроблений спочатку для Parcel, і значно швидше виконує поступове перебудовування у великих монорепозиторіях.

Як насправді оновитися

Встановлення нового компілятора відбувається точно так само, як і завжди:

npm install -D typescript
npx tsc --version
# TypeScript 7.0

Немає потреби у міграції конфігурації, немає кодомодів для запуску, а також немає змін синтаксису, які могли б спричинити проблеми. Якщо ваша команда вже використовувала пакет @typescript/native-preview на етапі створення кандидата на випуск, ця функціональність — створена на основі бінарного файлу tsgo — була повернута до стандартного пакету typescript, доступного через тег розповсюдження next.

Є одна застереження, на яке варто звернути увагу: API програмного компілятора ще не повністю стабілізувався. Якщо ваша система збірки, конфігурація ESLint чи власні інструменти залежать безпосередньо від API TypeScript, а не лише викликають tsc, утримайтеся поки що від написання нового коду, який би використовував такі інтерфейси, як createProgram. Командам у такій ситуації слід відкласти повну заміну до виходу версії 7.1, оскільки очікується, що саме ця версія усуне проблеми, які виникли під час переходу минулого року.

Що це означає для проектів React та Next.js

Оскільки багато інструментів фреймворку побудовані на основі компілятора TypeScript, ці інструменти автоматично отримують переваги у продуктивності. Перевірка типів під час збирання в Next.js, швидка реакція функції IntelliSense у великих бібліотеках компонентів, створених з використанням Redux чи Tailwind, а також перевірка типів у проєктах монорепозиторію — усе це стає швидшим без необхідності змінювати ваш код. Для команд, які відкладали активацію параметра strict: true, оскільки повна перевірка типів у всьому проєкті здавалася занадто повільною, зараз є доцільний момент для перегляду цього рішення — обчислювальні витрати на таку перевірку зменшилися в десятки разів.

Ключові висновки

  • TypeScript 7 переписує компілятор, а не мову — ваш код перевіряється так само, просто на новому двигуні на основі Go.
  • Повні збірки виконуються у 8–12 разів швидше, а завантаження проекту в редакторі також значно прискорюється.
  • Оновлення відбувається дуже просто – достатньо виконати команду npm install, але утримайтеся від використання програмного API для створення власних інструментів до виходу версії 7.1.
  • Проекти, засновані на фреймворках, включаючи додатки React та Next.js, автоматично отримують прискорення без необхідності змін конфігурації.
  • Якщо раніше час збірки був причиною, чому ви утримувалися від увімкнення суворої перевірки типів, тепер ця причина більше не діє. Встановіть нову версію, запустіть ваш існуючий набір тестів – і побачите, як скоротиться час виконання CI-пайплайну.

    Пов’язана література

  • Часткове попереднє рендеринг та одночасний рендеринг: пояснення — Дізнайтеся, як функції часткового попереднього рендерингу в Next.js та одночасного рендерингу в React вирішують проблему повільної роботи додатків, дозволяючи фреймворкам планувати та виконувати завдання поетапно, замість того щоб розглядати процес рендерингу як єдину блокуючу одиницю.
  • Стандарти повноцінного стеку JavaScript у 2026 році: TypeScript, RSC та інше — Пояснюється, чому TypeScript, React Server Components та більш ефективні підходи до керування станом стали стандартними інструментами для команд, які працюють з JavaScript у 2026 році.
  • Навичка AGENTS.md від Vercel навчає AI-асистентів 70 кращих практик React — детальний огляд навички agent react-best-practices від Vercel, який показує, як вона вбудовує 70 перевірених у реальних проектах правил React безпосередньо в код, створений штучним інтелектом.