Конфигурация tsconfig.json в TypeScript
tsconfig.json — это файл конфигурации для проектов TypeScript, используемый для указания параметров компилятора и настроек проекта.
Базовая конфигурация
Самый базовый файл tsconfig.json.
Пример
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"strict": true,
"outDir": "./dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"strict": true,
"outDir": "./dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
Описание конфигурации:
- target:Целевая версия JavaScript для компиляции
- module:Модульная система для использования
- strict:Включить все строгие проверки типов
- outDir:Выходной каталог
Целевая версия компиляции
Используйте "target", чтобы указать версию JavaScript, в которую нужно компилировать.
Пример
// tsconfig.json
{
"compilerOptions": {
// ES3, ES5, ES6/ES2015, ES2020, ESNext
"target": "ES2020"
}
}
{
"compilerOptions": {
// ES3, ES5, ES6/ES2015, ES2020, ESNext
"target": "ES2020"
}
}
Различия в выводе для разных целей:
// target: ES5 - 使用 var var greeting = "Hello"; // target: ES2020 - 使用 let/const let greeting = "Hello";
Модульная система
Настройте схему модуляризации.
Пример
{
"compilerOptions": {
"module": "commonjs",
// Опции: none, commonjs, amd, umd, es6, es2020, esnext
}
}
"compilerOptions": {
"module": "commonjs",
// Опции: none, commonjs, amd, umd, es6, es2020, esnext
}
}
Строгий режим
Опция strict включает все строгие проверки типов.
Пример
{
"compilerOptions": {
"strict": true,
// Эквивалентно включению всех следующих опций:
// "strictNullChecks": true,
// "noImplicitAny": true,
// "strictFunctionTypes": true,
// и т.д.
}
}
"compilerOptions": {
"strict": true,
// Эквивалентно включению всех следующих опций:
// "strictNullChecks": true,
// "noImplicitAny": true,
// "strictFunctionTypes": true,
// и т.д.
}
}
Рекомендация:Всегда включайте strict: true, это лучшая практика.
Псевдонимы путей
Настройте псевдонимы путей, чтобы упростить импорты.
Пример
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"@components/*": ["src/components/*"]
}
}
}
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"@components/*": ["src/components/*"]
}
}
}
Использование:
import Button from "@components/Button";
import { Header } from "@/components";
Включение и исключение файлов
Управляйте тем, какие файлы включаются в компиляцию.
Пример
{
"include": ["src/**/*"],
"exclude": [
"node_modules",
"dist",
"**/*.test.ts",
"**/*.spec.ts"
]
}
"include": ["src/**/*"],
"exclude": [
"node_modules",
"dist",
"**/*.test.ts",
"**/*.spec.ts"
]
}
Обзор общих параметров компилятора
| Опция | Описание |
|---|---|
| target | Целевая версия компиляции |
| module | Модульная система |
| strict | Строгий режим |
| outDir | Каталог вывода |
| rootDir | Корневой каталог исходных файлов |
| esModuleInterop | Разрешить взаимодействие модулей ES |
| skipLibCheck | Пропускать проверку библиотек |
| declaration | Генерация файлов объявлений .d.ts |
Итог
- tsconfig.json:Файл конфигурации проекта TypeScript
- compilerOptions:Основная конфигурация параметров компилятора
- include/exclude:Управление областью файлов
- Псевдонимы путей:Упрощение путей импорта
- strict: true:Всегда включать строгий режим