2025-11-19 10:12:20 +03:00
|
|
|
|
# Документация 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
|
|
|
|
|
|
{
|
2025-11-23 15:38:19 +03:00
|
|
|
|
"@/*": ["./src/*"],
|
2025-11-19 10:12:20 +03:00
|
|
|
|
"*": ["./src/*"]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
2025-11-23 15:38:19 +03:00
|
|
|
|
Позволяет импортировать файлы из `src` с использованием `@/` или без префикса
|
|
|
|
|
|
|
|
|
|
|
|
### Типы
|
|
|
|
|
|
- **types**: Глобальные типы для проекта
|
|
|
|
|
|
```json
|
|
|
|
|
|
["node", "jest", "@testing-library/jest-dom"]
|
|
|
|
|
|
```
|
|
|
|
|
|
- `node` - типы Node.js API
|
|
|
|
|
|
- `jest` - типы для Jest тестов
|
|
|
|
|
|
- `@testing-library/jest-dom` - типы для дополнительных матчеров Jest
|
2025-11-19 10:12:20 +03:00
|
|
|
|
|
|
|
|
|
|
## Настройки 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
|
|
|
|
|
|
// Вместо:
|
2025-11-23 15:38:19 +03:00
|
|
|
|
import { Button } from '../../../shared/ui/Button'
|
|
|
|
|
|
|
|
|
|
|
|
// Можно писать с @ алиасом:
|
|
|
|
|
|
import { Button } from '@/shared/ui/Button'
|
2025-11-19 10:12:20 +03:00
|
|
|
|
|
2025-11-23 15:38:19 +03:00
|
|
|
|
// Или без префикса (для совместимости):
|
|
|
|
|
|
import { Button } from 'shared/ui/Button'
|
2025-11-19 10:12:20 +03:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### JSX без импорта React
|
|
|
|
|
|
```typescript
|
|
|
|
|
|
// React 19 с автоматическим JSX transform
|
|
|
|
|
|
// Не нужно импортировать React!
|
|
|
|
|
|
const App = () => {
|
|
|
|
|
|
return <div>Hello World</div>
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Связанные файлы
|
|
|
|
|
|
- `webpack.config.ts` - использует эту конфигурацию
|
|
|
|
|
|
- `eslint.config.mjs` - проверяет TypeScript код
|
|
|
|
|
|
- `src/**/*.ts` - исходные TypeScript файлы
|
|
|
|
|
|
- `src/**/*.tsx` - исходные React компоненты
|