TypeScript 6.0 вже тут
TypeScript 6.0 — це важлива віха. Це остання версія, побудована на базі JavaScript. Наступна версія, 7.0, перейде на компілятор на основі Go.
Ця зміна має значення для вашого проєкту. Якщо ви занадто довго відкладатимете оновлення, вам доведеться проходити дві міграції поспіль.
Нові можливості, які варто використовувати
• Ключове слово using: воно керує такими ресурсами, як підключення до баз даних або дескриптори файлів. Воно автоматично очищує пам'ять. Вам більше не потрібні додаткові блоки finally, щоб запобігти витокам.
• Покращений вивід типів методів: ви можете припинити писати явні анотації типів для fluent API. Тепер TypeScript сам обробляє контекст.
• Покращення варіативних кортежів (variadic tuples): тепер ви можете розгортати типи в будь-якій позиції кортежу. Це значно спрощує написання складних патернів функцій.
Приріст продуктивності
Нова версія швидша. У великих проєктах швидкість перезбірки зросла до 40%. Тепер компілятор використовує розумніше відстеження залежностей. Він перекомпілює код лише тоді, коли змінюється сигнатура, а не просто при зміні тіла функції.
Критичні зміни, на які варто звернути увагу
• Злиття просторів імен (namespace merging): ви повинні використовувати явні експорти при злитті просторів імен із класами.
• Суворіші індексні сигнатури: ви більше не можете отримувати доступ до довільних властивостей об'єкта. Це запобігає помилкам, спричиненим припущенням, що властивість існує, коли насправді це не так.
• Значення за замовчуванням у суворому режимі: прапорець noUncheckedIndexedAccess тепер увімкнено за замовчуванням. Ви повинні перевіряти, чи є елементи масиву null або undefined.
Стратегія міграції
Не панікуйте, якщо побачите багато помилок. Дотримуйтесь цих кроків:
- Запустіть компілятор із прапорцем
noEmit, щоб спочатку побачити всі помилки. - Використовуйте офіційні codemods, щоб автоматично виправити індексні сигнатури та перевірки на null.
- Виправте проблеми з просторами імен вручну.
- Перевірте свої
node_modules. Деякі бібліотеки можуть ще не підтримувати версію 6.0.
Перехід на компілятор Go у версії 7.0 забезпечить у 10 разів швидшу перевірку типів. Починайте перехід на 6.0 вже зараз, щоб підготувати свій код до майбутнього.