Параметры компилятора TypeScript
Компилятор TypeScript (tsc) имеет множество параметров компилятора. В этом учебнике подробно описаны часто используемые параметры компилятора и их назначение.
SVG-диаграмма: Процесс компиляции TypeScriptПараметры управления выводом
Пример
{
"compilerOptions": {
// Каталог вывода
"outDir": "./dist",
// Корневой каталог исходного кода
"rootDir": "./src",
// Генерировать файлы объявлений .d.ts
"declaration": true,
// Каталог вывода файлов объявлений
"declarationDir": "./types",
// Генерировать карты исходного кода
"sourceMap": true,
// Генерировать файлы .js.map
"mapRoot": "./map"
}
}
"compilerOptions": {
// Каталог вывода
"outDir": "./dist",
// Корневой каталог исходного кода
"rootDir": "./src",
// Генерировать файлы объявлений .d.ts
"declaration": true,
// Каталог вывода файлов объявлений
"declarationDir": "./types",
// Генерировать карты исходного кода
"sourceMap": true,
// Генерировать файлы .js.map
"mapRoot": "./map"
}
}
Параметры проверки типов
Пример
{
"compilerOptions": {
// Строгий режим (рекомендуется всегда включать)
"strict": true,
// Проверять null и undefined
"strictNullChecks": true,
// Проверять параметр this
"noImplicitThis": true,
// Строгие типы функций
"strictFunctionTypes": true,
// Строгая инициализация свойств
"strictPropertyInitialization": true,
// Запретить неявный any
"noImplicitAny": true,
// Запретить возврат void
"noImplicitReturns": true,
// Включить все строгие проверки
"strict": true
}
}
"compilerOptions": {
// Строгий режим (рекомендуется всегда включать)
"strict": true,
// Проверять null и undefined
"strictNullChecks": true,
// Проверять параметр this
"noImplicitThis": true,
// Строгие типы функций
"strictFunctionTypes": true,
// Строгая инициализация свойств
"strictPropertyInitialization": true,
// Запретить неявный any
"noImplicitAny": true,
// Запретить возврат void
"noImplicitReturns": true,
// Включить все строгие проверки
"strict": true
}
}
Параметры модуля
Пример
{
"compilerOptions": {
// Система модулей
"module": "commonjs",
// Стратегия разрешения модулей
"moduleResolution": "node",
// Базовый путь для разрешения
"baseUrl": ".",
// Псевдонимы путей
"paths": {
"@/*": ["src/*"]
},
// Взаимодействие модулей ES
"esModuleInterop": true,
// Разрешить импорт по умолчанию
"allowSyntheticDefaultImports": true,
// Изолировать модули
"isolatedModules": true
}
}
"compilerOptions": {
// Система модулей
"module": "commonjs",
// Стратегия разрешения модулей
"moduleResolution": "node",
// Базовый путь для разрешения
"baseUrl": ".",
// Псевдонимы путей
"paths": {
"@/*": ["src/*"]
},
// Взаимодействие модулей ES
"esModuleInterop": true,
// Разрешить импорт по умолчанию
"allowSyntheticDefaultImports": true,
// Изолировать модули
"isolatedModules": true
}
}
Параметры возможностей ES
Пример
{
"compilerOptions": {
// Цель компиляции
"target": "ES2020",
// Включенные библиотеки
"lib": ["ES2020", "DOM"],
// Разрешить неиспользуемые локальные переменные
"noUnusedLocals": true,
// Разрешить неиспользуемые параметры
"noUnusedParameters": true,
// Понижение уровня кода
"downlevelIteration": true
}
}
"compilerOptions": {
// Цель компиляции
"target": "ES2020",
// Включенные библиотеки
"lib": ["ES2020", "DOM"],
// Разрешить неиспользуемые локальные переменные
"noUnusedLocals": true,
// Разрешить неиспользуемые параметры
"noUnusedParameters": true,
// Понижение уровня кода
"downlevelIteration": true
}
}
Экспериментальные параметры
Пример
{
"compilerOptions": {
// Включить декораторы
"experimentalDecorators": true,
// Включить метаданные декоратора
"emitDecoratorMetadata": true,
// Включить асинхронные итераторы
"emitDecoratorMetadata": true,
// Пропустить проверки библиотек
"skipLibCheck": true
}
}
"compilerOptions": {
// Включить декораторы
"experimentalDecorators": true,
// Включить метаданные декоратора
"emitDecoratorMetadata": true,
// Включить асинхронные итераторы
"emitDecoratorMetadata": true,
// Пропустить проверки библиотек
"skipLibCheck": true
}
}
Типичные комбинации параметров компилятора
Пример
// Рекомендуемая конфигурация для проектов Node.js
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"lib": ["ES2020"],
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"declaration": true
}
}
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"lib": ["ES2020"],
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"declaration": true
}
}
Таблица параметров компилятора
| Категория | Общие параметры |
|---|---|
| Вывод | outDir, rootDir, declaration, sourceMap |
| Проверка типов | strict, strictNullChecks, noImplicitAny |
| Модуль | module, moduleResolution, paths, esModuleInterop |
| Возможности ES | target, lib, downlevelIteration |
| Экспериментальные | experimentalDecorators, emitDecoratorMetadata |
Итог
- Строгий режим:Всегда включайте strict: true
- Целевая версия:Выберите подходящий target в зависимости от окружения
- Модульная система:Выберите module в зависимости от среды развёртывания
- Объявления типов:Включайте declaration при разработке библиотек