← Усі статті

TypeScript 7.0 RC: компілятор на Go і прискорення до 10×

Microsoft випустила RC TypeScript 7.0 на новій Go-основі: сумісність з 6.0, паралельна збірка, пакет @typescript/typescript6 і перероблений --watch.

Зміст

Коротко

Microsoft оголосила Release Candidate TypeScript 7.0 — перший великий реліз на новому фундаменті: компілятор переписано на Go замість самопідтримуваного TypeScript-коду. Обіцяють до 10× прискорення відносно 6.0 із збереженням структурної сумісності типізації та можливості ставити 7.0 поруч із 6.0.

Що сталося

Розробка TS 7.0 тривала понад рік: існуючу кодову базу компілятора портовано на Go, зберігаючи ту саму логіку перевірки типів, що й у 6.0. Це не «інша мова типів», а той самий семантичний контракт на швидшому рантаймі.

Встановлення — через npm, як зазвичай. Для поступової міграції з'явився пакет @typescript/typescript6: можна тримати старий компілятор в одному репозиторії, поки команда перевіряє 7.0 на CI та в IDE.

Ключові покращення окрім «просто швидше»:

  • Паралелізація — налаштовувана кількість воркерів для type-check і project builder; виграш помітніший на великих монорепо.
  • --watch — перероблено з новим механізмом стеження за файлами (запозичено з Parcel): стабільніше на macOS/Linux/Windows, менше зайвих перезбирань.
  • Структурний паритет із 6.0 — ціль RC: ті самі помилки на тих самих файлах, що й у попередній мажорній гілці.

Чому це важливо

Швидкість компілятора — не показник «для галочки»: у монорепо з сотнями пакетів кожна секунда tsc множиться на кожну відправку в репозиторій і локальний цикл розробника. Go-реалізація — ставка на передбачувану продуктивність і паралелізм без переписування екосистеми @types/* і конфігів tsconfig.

RC — момент, коли командам варто прогнати 7.0 на репрезентативному зрізі проєкту: не лише «збирається», а й збігаються діагностики. Пакет сумісності з 6.0 знижує ризик міграції «одним махом»: можна перемикати CI поетапно (спочатку нічні збірки, потім основну гілку).

На практиці

  1. Поставте RC в окрему гілкуnpm install typescript@rc (або версію з анонсу) і порівняйте час tsc --noEmit з 6.0.
  2. Використовуйте @typescript/typescript6 — якщо плагіни чи скрипти жорстко прив'язані до старого бінарника, тримайте обидва до стабілізації ланцюжка інструментів.
  3. Налаштуйте паралелізм — для великих репозиторіїв підберіть число воркерів під CI-раннер (не «максимум ядер» навмання).
  4. Перевірте --watch локально — особливо якщо раніше страждали від пропущених змін або зайвих повних перезбирань.
  5. Зафіксуйте розбіжності діагностик — будь-яка відмінність від 6.0 на RC — привід завести задачу в репозиторії TypeScript, поки вікно міграції відкрите.
Сценарій Очікуваний виграш
Малий односторінковий інтерфейс Швидше, але не революція
Великий monorepo До порядку 10× на «холодній» збірці
Dev --watch Менше лагів, стабільніше на всіх ОС

Підсумок

TypeScript 7.0 RC — інфраструктурний реліз: та сама мова для розробника, інший двигун під капотом. Має сенс почати експеримент на CI зараз, поки RC збирає зворотний зв'язок, і не відкладати порівняння діагностик із 6.0 — саме це визначить, наскільки безболісним буде фінальний GA.