Параметры компилятора TypeScript

Компилятор TypeScript (tsc) имеет множество параметров компилятора. В этом учебнике подробно описаны часто используемые параметры компилятора и их назначение.

SVG-диаграмма: Процесс компиляции TypeScript Background Title TypeScript Compilation Process and Compiler Options Source Code TypeScript Source Code .ts / .tsx Contains Type Annotations Arrow 1 TypeScript Compiler TypeScript Compiler (tsc) Compiler Options Compiler Option Functions: • Type checking (strict) • Output format (module) • Target version (target) • Declaration files (declaration) ...More options Arrow 2 Compilation Output Compilation Output .js - JavaScript .d.ts - Type Declarations .map - Source Map Lower Section: Compiler Option Categories Compiler Option Categories Category 1 Type Checking strict noImplicitAny strictNullChecks Category 2 Output Control outDir declaration sourceMap Category 3 Module System module moduleResolution esModuleInterop Category 4 Language Features target lib jsx Arrow Marker

Параметры управления выводом

Пример

{
    "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": {
        // Система модулей
        "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": {
        // Включить декораторы
        "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
    }
}

Таблица параметров компилятора

Категория Общие параметры
Вывод outDir, rootDir, declaration, sourceMap
Проверка типов strict, strictNullChecks, noImplicitAny
Модуль module, moduleResolution, paths, esModuleInterop
Возможности ES target, lib, downlevelIteration
Экспериментальные experimentalDecorators, emitDecoratorMetadata

Итог

  • Строгий режим:Всегда включайте strict: true
  • Целевая версия:Выберите подходящий target в зависимости от окружения
  • Модульная система:Выберите module в зависимости от среды развёртывания
  • Объявления типов:Включайте declaration при разработке библиотек
Другие расширения