feat: конфигурация TypeScript 5 с поддержкой React 19

- Настроен tsconfig.json со строгой проверкой типов
- Добавлена документация на русском языке (tsconfig.README.md)
- Automatic JSX runtime (react-jsx)
- Алиасы путей для удобного импорта
- Include src директории
This commit is contained in:
Ilia Mashkov
2025-11-19 10:12:20 +03:00
parent b7575ea756
commit afd73858b0
2 changed files with 126 additions and 0 deletions

93
tsconfig.README.md Normal file
View File

@@ -0,0 +1,93 @@
# Документация 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` без указания полного пути
## Настройки 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 '../../../components/Button'
// Можно писать:
import { Button } from 'components/Button'
```
### 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 компоненты

33
tsconfig.json Normal file
View File

@@ -0,0 +1,33 @@
{
"compilerOptions": {
"outDir": "./dist/",
"noImplicitAny": true,
"module": "ESNext",
"target": "es5",
"jsx": "react-jsx",
"allowJs": true,
"moduleResolution": "node",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"baseUrl": ".",
"paths": {
"*": [
"./src/*"
]
},
"strict": true
},
"ts-node": {
"compilerOptions": {
"module": "CommonJS"
}
},
"include": [
"src"
],
"exclude": [
".fttemplates/**/*",
"node_modules",
"dist"
]
}