Конфигурация tsconfig.json в TypeScript

tsconfig.json — это файл конфигурации для проектов TypeScript, используемый для указания параметров компилятора и настроек проекта.


Базовая конфигурация

Самый базовый файл tsconfig.json.

Пример

{
    "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"
    }
}

Различия в выводе для разных целей:

// target: ES5 - 使用 var
var greeting = "Hello";

// target: ES2020 - 使用 let/const
let greeting = "Hello";

Модульная система

Настройте схему модуляризации.

Пример

{
    "compilerOptions": {
        "module": "commonjs",
        // Опции: none, commonjs, amd, umd, es6, es2020, esnext
    }
}

Строгий режим

Опция strict включает все строгие проверки типов.

Пример

{
    "compilerOptions": {
        "strict": true,
        // Эквивалентно включению всех следующих опций:
        // "strictNullChecks": true,
        // "noImplicitAny": true,
        // "strictFunctionTypes": true,
        // и т.д.
    }
}

Рекомендация:Всегда включайте strict: true, это лучшая практика.


Псевдонимы путей

Настройте псевдонимы путей, чтобы упростить импорты.

Пример

{
    "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"
    ]
}

Обзор общих параметров компилятора

Опция Описание
target Целевая версия компиляции
module Модульная система
strict Строгий режим
outDir Каталог вывода
rootDir Корневой каталог исходных файлов
esModuleInterop Разрешить взаимодействие модулей ES
skipLibCheck Пропускать проверку библиотек
declaration Генерация файлов объявлений .d.ts

Итог

  • tsconfig.json:Файл конфигурации проекта TypeScript
  • compilerOptions:Основная конфигурация параметров компилятора
  • include/exclude:Управление областью файлов
  • Псевдонимы путей:Упрощение путей импорта
  • strict: true:Всегда включать строгий режим
Другие расширения