Вийшов TypeScript 5.9: що нового
Команда TypeScript випустила нову версію мови — 5.9. У ній з’явилося кілька помітних змін, серед яких підтримка import defer, новий режим --module node20, покращене tsc --init, зручніші підказки в редакторі та багато дрібних оновлень.
Мінімалістичний tsc —init
Команда tsc --init тепер генерує компактний tsconfig.json з актуальними налаштуваннями: підтримка сучасних модулів, JSX, строгі перевірки типів і мінімальна залежність від @types.
Приклад нового tsconfig.json:
{
"compilerOptions": {
"module": "nodenext",
"target": "esnext",
"types": [],
"sourceMap": true,
"declaration": true,
"declarationMap": true,
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
"strict": true,
"jsx": "react-jsx",
"verbatimModuleSyntax": true,
"isolatedModules": true,
"noUncheckedSideEffectImports": true,
"moduleDetection": "force",
"skipLibCheck": true
}
}
Підтримка import defer
З’явилася підтримка нового синтаксису import defer, який дозволяє імпортувати модуль, але не виконувати його одразу. Модуль запускається тільки тоді, коли ви звертаєтесь до його експорту:
import defer * as feature from "./some-feature.js"; console.log(feature.specialConstant); // модуль виконується саме тут
❗ Не підтримуються такі форми:
import defer { something } from "module"; // ❌
import defer defaultExport from "module"; // ❌
Новий режим —module node20
У версії 5.9 з’явився новий стабільний режим: --module node20, який моделює поведінку Node.js v20.
На відміну від nodenext, він:
- не буде змінюватися в майбутньому,
- за замовчуванням встановлює
--target es2023.
Дрібні моменти
- У редакторах на кшталт VS Code з’явилися розгортувані підказки типів, можна натискати + або — при наведенні.
- Довжину підказок можна налаштовувати через
js/ts.hover.maximumLength. - DOM API тепер з короткими описами, а не просто з посиланням на MDN.
- Перевірка існування файлів стала до 11% швидшою.
- Менше навантаження при роботі з великими бібліотеками типу Zod або tRPC.
- ArrayBuffer більше не охоплює Buffer — можуть виникнути нові помилки типів.
- Краща обробка дженериків, завдяки чому тепер точніше виводяться типи, але можуть з’явитися нові помилки, які зазвичай вирішуються додаванням явних типів.
Це оновлення є підготовчим до версії TS 6.0, яка, в свою чергу, є проміжною перед повністю новою, нативною версією TS 7.0. Оновитися можна вже, достатньо використати команду:
npm install -D typescript
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівДовжину підказок можна налаштовувати через js/ts.hover.maximumLength.
Нарешті!
import defer: супер цікаво але стрьомно, бо для JS воно тільки в stage 3 github.com/...roposal-defer-import-eval
В оригиналі зовсім інше:
«in editors LIKE Visual Studio and VS Code»
Пофіксили, дякую