Проверяет знание настроек tsconfig, управляющих подключением и поиском файлов с типами в TypeScript.
В TypeScript компилятор использует файл tsconfig.json для определения того, какие файлы включать в проект и как искать объявления типов. Понимание этих настроек критично для правильной настройки проекта, особенно при работе с библиотеками и сторонними типами.
Настройка files позволяет явно перечислить файлы, которые должны быть включены в компиляцию. Это удобно для небольших проектов, но обычно используют include, который принимает массив паттернов (glob) для включения файлов по маске. Например:
{
"compilerOptions": { ... },
"include": ["src/**/*"],
"files": ["src/index.ts"]
}Если указаны оба, то files добавляет файлы к списку из include.
Настройка exclude исключает файлы из компиляции, даже если они подходят под паттерны include. Это полезно для исключения тестов, node_modules или сгенерированных файлов.
По умолчанию TypeScript автоматически включает все пакеты из node_modules/@types. Настройка types позволяет ограничить этот список, указав только нужные пакеты. Например, "types": ["node", "jest"] подключит только типы Node.js и Jest. Настройка typeRoots задает дополнительные папки, где компилятор будет искать объявления типов, если они не находятся в стандартном месте.
Хотя baseUrl не напрямую связан с типами, он влияет на резолв путей при импорте модулей, что косвенно влияет на поиск файлов с типами. Например, установка "baseUrl": "./" позволяет использовать абсолютные пути в импортах.
// tsconfig.json
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"strict": true,
"typeRoots": ["./typings", "./node_modules/@types"],
"types": ["node"]
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}В этом примере компилятор будет искать типы в папке typings и стандартной папке @types, но подключит только пакет node. Все файлы из src будут включены, а node_modules и dist исключены.
Правильная настройка files, include, exclude, types и typeRoots позволяет точно контролировать, какие файлы и типы участвуют в компиляции, что особенно важно в крупных проектах с множеством зависимостей.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию