# Документация tsconfig.json ## Описание Конфигурация TypeScript компилятора для проекта only-task. Определяет параметры компиляции TypeScript кода в JavaScript. ## Основные настройки компилятора (compilerOptions) ### Выходные файлы - **outDir**: `./dist/` - Директория для скомпилированных файлов ### Проверка типов - **noImplicitAny**: `true` - Запрет неявного типа `any` - **strict**: `true` - Включить все строгие проверки типов ### Модули - **module**: `ESNext` - Использование современных ES модулей - **target**: `es5` - Компиляция в ES5 для максимальной совместимости с браузерами - **moduleResolution**: `node` - Разрешение модулей как в Node.js ### React и JSX - **jsx**: `react-jsx` - Автоматический JSX transform для React 19 - Не требует импорта React в каждом файле - Использует новый JSX runtime ### Совместимость - **allowJs**: `true` - Разрешить импорт `.js` файлов в TypeScript - **esModuleInterop**: `true` - Совместимость с CommonJS модулями - **allowSyntheticDefaultImports**: `true` - Разрешить default импорты из модулей без default export ### Пути и алиасы - **baseUrl**: `.` - Базовый путь для разрешения модулей - **paths**: Настройка алиасов для импортов ```json { "@/*": ["./src/*"], "*": ["./src/*"] } ``` Позволяет импортировать файлы из `src` с использованием `@/` или без префикса ### Типы - **types**: Глобальные типы для проекта ```json ["node", "jest", "@testing-library/jest-dom"] ``` - `node` - типы Node.js API - `jest` - типы для Jest тестов - `@testing-library/jest-dom` - типы для дополнительных матчеров Jest ## Настройки ts-node Специальные настройки для выполнения TypeScript файлов через ts-node (используется webpack для загрузки webpack.config.ts): ```json { "compilerOptions": { "module": "CommonJS" } } ``` ## Включенные и исключенные файлы ### include - `src` - Включить все файлы из директории src для компиляции ### exclude - `.fttemplates/**/*` - Исключить шаблоны - `node_modules` - Исключить зависимости - `dist` - Исключить скомпилированные файлы ## Примеры использования ### Проверка типов ```bash pnpm type-check ``` ### Использование алиасов путей ```typescript // Вместо: import { Button } from '../../../shared/ui/Button' // Можно писать с @ алиасом: import { Button } from '@/shared/ui/Button' // Или без префикса (для совместимости): import { Button } from 'shared/ui/Button' ``` ### JSX без импорта React ```typescript // React 19 с автоматическим JSX transform // Не нужно импортировать React! const App = () => { return
Hello World
} ``` ## Связанные файлы - `webpack.config.ts` - использует эту конфигурацию - `eslint.config.mjs` - проверяет TypeScript код - `src/**/*.ts` - исходные TypeScript файлы - `src/**/*.tsx` - исходные React компоненты