TypeScript 6.0 - перехідний реліз: останній на старому компіляторі, який готує проєкти до TypeScript 7. Він змінює значення за замовчуванням і оголошує застарілими опції, які в 7.0 стали помилками.
Нові значення за замовчуванням:
| Опція | Було | Стало |
|---|---|---|
strict |
false |
true |
module |
залежно від target |
esnext |
target |
es5 |
останній стабільний стандарт (es2025) |
types |
усі @types/* |
[] |
rootDir |
спільний каталог вихідних файлів | каталог з tsconfig.json |
noUncheckedSideEffectImports |
false |
true |
Найчастіші проблеми після оновлення:
- «Cannot find name 'process'» / «describe» - додати
"types": ["node", ...]; - результат збирається в
dist/src/index.jsзамістьdist/index.js- вказати"rootDir": "./src"; - нові помилки строгості - або виправляти, або явно
"strict": falseяк тимчасовий крок.
Видалено в TypeScript 7 (у 6.0 - попередження, які можна приглушити "ignoreDeprecations": "6.0"):
baseUrl- шляхи вpathsтепер відносно каталогу конфігу з префіксом./;moduleResolution: node(node10) іclassic- замінити наbundlerабоnodenext;target: es5іdownlevelIteration- найнижча цільes2015; для ES5 - зовнішній компілятор;module: amd,umd,systemjs,noneіoutFile;esModuleInterop: false,allowSyntheticDefaultImports: false,alwaysStrict: false;- ключове слово
moduleдля просторів імен (лишеnamespace) іassertsв імпортах (лишеwith); - передача файлів у
tscу каталозі зtsconfig.jsonбез--ignoreConfig.
Рекомендований порядок:
- оновитися до TypeScript 6.0 і виправити всі попередження про застарілі опції (не приглушувати
ignoreDeprecationsнадовго - у 7.0 це не спрацює); - частину змін (
baseUrl,rootDir) робить автоматично експериментальний інструментts5to6; - перевірити з прапорцем
stableTypeOrdering- у 7.0 він увімкнений і незмінний; з ним 6.0 дає ті самі результати, що й 7.0; - перейти на TypeScript 7, а для інструментів, що потребують API (
typescript-eslint), лишити поряд@typescript/typescript6.
Чому ці зміни корисні: явний types пришвидшує перевірку на 20-50%, а видалені опції здебільшого ховали помилки (TypeScript «бачив» імпорти, які не працювали під час виконання).