TGViewer
Настоящий JavaScript Настоящий JavaScript @true_js · 5.91K subscribers
Post #3760 327
⁣⁣Isolated declarations — ускорение больших monorepo

В TypeScript есть флаг isolatedDeclarations.


Он нужен не для красоты типов,
а для скорости.


Проблема простая:

в больших monorepo генерация .d.ts
может становиться узким местом.

TypeScript часто должен анализировать соседние файлы,
чтобы понять, какие декларации вывести.

На маленьком проекте это почти незаметно.


На большом — начинает болеть.


Что делает isolatedDeclarations

isolatedDeclarations заставляет писать код так,
чтобы декларации можно было генерировать
по файлам независимо.

Из-за этого TypeScript чаще требует явные типы.

Было:


export function getUser() {
return { id: 1, name: 'Alex' }
}


Лучше так:


type User = {
id: number
name: string
}

export function getUser(): User {
return { id: 1, name: 'Alex' }
}



Меньше магии для компилятора —
быстрее и предсказуемее сборка.


Почему это важно

Когда проект растёт:

👉 TypeScript начинает сильнее зависеть от соседних файлов
👉 инкрементальная сборка замедляется
👉 генерация типов становится дорогой


Изоляция помогает компилятору работать параллельно и проще.


Где это особенно полезно

👉 большие monorepo
👉 библиотеки
👉 project references
👉 параллельная сборка
👉 CI, где каждая минута стоит денег

Главный trade-off

Ты немного платишь:

👉 более явными типами
👉 меньшим type inference
👉 дополнительным boilerplate

Но взамен получаешь:

👉 более быстрые сборки
👉 стабильный compile pipeline
👉 меньше скрытой сложности

Главная мысль


Это хороший пример взрослого engineering trade-off:
чуть больше явности в коде
ради скорости и предсказуемости системы.
More from @true_js
  1. Sep 25, 202612 CSS-штук, после которых часть ваших зависимостей можно смело провожать на пенсию Fronte…
  2. Sep 25, 2026Post #3927
  3. Sep 24, 2026Саппорт-агент на LLM, которому не дадут забыть про заказ Первый заход вышел так себе: в ка…
  4. Sep 24, 2026🤖Techlead в эпоху AI: пересобираем роль с Podlodka Techlead Crew AI изменил привычный укл…
  5. Sep 24, 2026vue-i18n сдаёт позиции? Тут появляется Intlayer Клепаешь мультиязычное приложение на Vue 3…
  6. Sep 24, 2026Десктопные приложения на JavaScript, которые весят меньше 10 МБ В выпуске #803 JavaScript…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →