3.8 KiB
3.8 KiB
Документация 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: Настройка алиасов для импортов
Позволяет импортировать файлы из
{ "@/*": ["./src/*"], "*": ["./src/*"] }srcс использованием@/или без префикса
Типы
- types: Глобальные типы для проекта
["node", "jest", "@testing-library/jest-dom"]node- типы Node.js APIjest- типы для Jest тестов@testing-library/jest-dom- типы для дополнительных матчеров Jest
Настройки ts-node
Специальные настройки для выполнения TypeScript файлов через ts-node (используется webpack для загрузки webpack.config.ts):
{
"compilerOptions": {
"module": "CommonJS"
}
}
Включенные и исключенные файлы
include
src- Включить все файлы из директории src для компиляции
exclude
.fttemplates/**/*- Исключить шаблоныnode_modules- Исключить зависимостиdist- Исключить скомпилированные файлы
Примеры использования
Проверка типов
pnpm type-check
Использование алиасов путей
// Вместо:
import { Button } from '../../../shared/ui/Button'
// Можно писать с @ алиасом:
import { Button } from '@/shared/ui/Button'
// Или без префикса (для совместимости):
import { Button } from 'shared/ui/Button'
JSX без импорта React
// 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 компоненты