tsconfig.json
Тема дорожной карты · Frontend разработчик
Конфигурация TypeScript управляется через файл tsconfig.json в корне проекта, который задаёт компилятору tsc инструкции по разбору, проверке типов и генерации JavaScript из TypeScript-исходников. Критически важные параметры компилятора: strict (включает все строгие правила проверки типов, включая strictNullChecks и noImplicitAny), target (версия выходного JavaScript, например "ES2022"), moduleResolution ("bundler" для проектов Vite и Next.js), jsx ("react-jsx" для React 17+ без явных импортов) и baseUrl/paths для псевдонимов модулей. Конфигурация TypeScript в монорепозиториях обычно использует корневой tsconfig.base.json, расширяемый конфигурациями отдельных пакетов; Vite и Next.js поставляются с преднастроенными TypeScript-шаблонами, чтобы новые проекты начинали с разумных умолчаний. Глубокое понимание конфигурации TypeScript позволяет разработчикам настраивать инкрементальные сборки, включать декораторы для MobX, конфигурировать псевдонимы путей для более чистых импортов и обеспечивать совместимость между версией TypeScript и определениями @types/, используемыми React, Node.js и другими зависимостями.
Как это работает
tsconfig.json добавляет статическую типизацию поверх JavaScript через компилятор tsc или трансформер (esbuild, swc). Type-аннотации в .ts / .tsx; вывод — обычный JS. tsconfig.json контролирует строгость — strict: true современный дефолт, включает null-checks, no-implicit-any, no-implicit-this и больше. Generics делают функции и компоненты переиспользуемыми между типами. Utility-типы (Partial, Pick, Omit, Required, Readonly, Record) выводят типы из существующих.
Когда применять
TypeScript — в каждый новый frontend-проект: безопасный рефакторинг + IDE-интеллект + ловля багов на сборке окупают трение за первую неделю. Мигрируйте JS-кодовую базу инкрементально через allowJs: true. unknown лучше any для неизвестных форм; намеренные касты (as Type) — только на границах. Доверяйте inference для локалов; аннотируйте сигнатуры функций + API модулей.
Типичные ошибки
Ловушки tsconfig.json: any повсюду, когда типы мешают (теряете смысл — рефакторьте или unknown); as Type-касты, лгущие компилятору; over-engineered generic constraints в библиотечном коде; не включили strictNullChecks (тихие undefined-баги возвращаются); расходящиеся runtime + type-check пайплайны (esbuild компилирует, tsc проверяет — оба должны быть в CI).