Зміст
Коротко
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 поетапно (спочатку нічні збірки, потім основну гілку).
На практиці
- Поставте RC в окрему гілку —
npm install typescript@rc(або версію з анонсу) і порівняйте часtsc --noEmitз 6.0. - Використовуйте
@typescript/typescript6— якщо плагіни чи скрипти жорстко прив'язані до старого бінарника, тримайте обидва до стабілізації ланцюжка інструментів. - Налаштуйте паралелізм — для великих репозиторіїв підберіть число воркерів під CI-раннер (не «максимум ядер» навмання).
- Перевірте
--watchлокально — особливо якщо раніше страждали від пропущених змін або зайвих повних перезбирань. - Зафіксуйте розбіжності діагностик — будь-яка відмінність від 6.0 на RC — привід завести задачу в репозиторії TypeScript, поки вікно міграції відкрите.
| Сценарій | Очікуваний виграш |
|---|---|
| Малий односторінковий інтерфейс | Швидше, але не революція |
| Великий monorepo | До порядку 10× на «холодній» збірці |
Dev --watch |
Менше лагів, стабільніше на всіх ОС |
Підсумок
TypeScript 7.0 RC — інфраструктурний реліз: та сама мова для розробника, інший двигун під капотом. Має сенс почати експеримент на CI зараз, поки RC збирає зворотний зв'язок, і не відкладати порівняння діагностик із 6.0 — саме це визначить, наскільки безболісним буде фінальний GA.