tsconfig ломают не ошибки TypeScript, а три тихих флага в каждом репо
За неделю в репах чаще всего вижу одно и то же: проект собирается, но IDE подсказывает одно, тесты запускают другое, а build — третье. Почти всегда причина в tsconfig, который унаследовали без проверки.
Проверьте три вещи:
— strict и его соседей: если часть флагов выключена, типы начинают «плыть» между пакетами.
— baseUrl и paths: удобный импорт без синхронизации с Vite, Bun или ts-node превращается в алиасы, которые работают только в редакторе.
— module и moduleResolution: смешение CommonJS и ESM обычно всплывает не в типах, а в рантайме.
Ещё одна типовая ошибка — один tsconfig на всё. В монорепе лучше держать базовый файл с общими правилами и отдельные конфиги для app, lib и tests. Тогда noEmit, composite и declaration не конфликтуют между собой, а TypeScript перестаёт гадать, что вы собирались собрать.
Если IDE показывает зелёный статус, а прод падает на импортах — сначала смотрите tsconfig, потом код.
DevTools Brief — обзор инструментов
@devtools_brief
tsconfig ломают не ошибки TypeScript, а три тихих флага в каждом репо
Этот пост опубликован в Telegram-канале DevTools Brief — обзор инструментов. Подписаться можно по ссылке: @devtools_brief.