Что такое файл tsconfig.json и какие параметры в нем можно задавать?
Файл tsconfig.json — это конфигурационный файл для TypeScript, который определяет, как компилятор (tsc) должен обрабатывать проект. Он служит центральной точкой настройки и позволяет управлять компиляцией, указывать входные файлы, выходные директории, а также включать или выключать различные проверки. Благодаря этому можно стандартизировать процесс сборки и сделать его одинаковым для всей команды.
Основные задачи tsconfig.json
Файл выполняет несколько ключевых функций:
-
Определяет, какие файлы должны быть скомпилированы.
-
Настраивает правила компиляции.
-
Управляет генерацией выходных файлов.
-
Включает дополнительные возможности проверки типов.
Структура файла
tsconfig.json представляет собой JSON-объект с ключевыми разделами:
-
compilerOptions — параметры компилятора.
-
include — список файлов или директорий, которые нужно включить.
-
exclude — файлы или директории, которые нужно исключить.
-
files — явное указание конкретных файлов, участвующих в компиляции.
Важные параметры compilerOptions
Целевой стандарт JavaScript
- target: определяет версию JavaScript, в которую будет транслирован TypeScript-код. Например: es5, es6, es2017, esnext.
Модульная система
- module: указывает систему модулей, например commonjs, esnext, amd. Это особенно важно для работы с Node.js или сборщиками вроде Webpack.
Директории ввода и вывода
-
rootDir: путь к исходным TypeScript-файлам.
-
outDir: директория, в которую будут помещены скомпилированные JavaScript-файлы.
Работа с картами исходников
- sourceMap: если включено (true), генерируются карты исходников, которые помогают в отладке кода в браузере или IDE.
Проверка типов
-
strict: включает строгий режим, который активирует сразу набор строгих правил, таких как strictNullChecks, noImplicitAny и другие.
-
noImplicitAny: запрещает неявное использование типа any.
-
strictNullChecks: требует явной обработки null и undefined.
Поддержка JSX
- jsx: задает режим компиляции JSX, например react или react-jsx, если используется React.
Оптимизация компиляции
-
incremental: включает инкрементальную компиляцию для ускорения повторных сборок.
-
skipLibCheck: пропускает проверку типов внутри библиотек, ускоряя процесс.
include, exclude и files
Эти разделы позволяют управлять тем, какие файлы попадут в компиляцию:
-
include: указывает паттерны файлов, например ["src/**/*"].
-
exclude: исключает ненужные директории, например ["node_modules", "dist"].
-
files: список конкретных файлов, если нужно точно определить набор компилируемых модулей.
Расширение конфигураций
TypeScript поддерживает наследование настроек через поле extends. Это удобно для больших проектов или монорепозиториев, где несколько пакетов могут делить общую конфигурацию, дополняя ее своими настройками.
Пример:
{
"extends": "./base-tsconfig.json",
"compilerOptions": {
"outDir": "./dist"
},
"include": \["src"\]
}
Польза использования tsconfig.json
-
Централизованная конфигурация проекта.
-
Согласованная компиляция в разных окружениях.
-
Повышение качества кода за счет строгих проверок.
-
Удобство в работе с IDE, так как многие редакторы ориентируются именно на настройки tsconfig.json.