Перейти до основного вмісту
Модуль 7 · Урок 1 із 213/14 у курсі~12 min
Модульні уроки (1/2)

Конфігурація за допомогою tsconfig.json

Файл tsconfig.json визначає кореневий каталог проекту TypeScript і параметри компілятора, необхідні для створення проекту.

Щоразу, коли ви запускаєте tsc в каталозі проекту, компілятор шукає цей файл, щоб керувати своєю поведінкою компіляції.


Структура файлу tsconfig.json

Типовий файл конфігурації виглядає так:

Code
{
  "compilerOptions": {
    "target": "es2022",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

Основні властивості:

  • compilerOptions: налаштування для компілятора.
  • include: вказує файли або папки для компіляції.
  • exclude: вказує файли або папки, які потрібно ігнорувати під час компіляції.

Ключові параметри компілятора

Ось деякі з найважливіших налаштувань, які слід знати:

  1. target: вказує версію JavaScript, виведену компілятором (наприклад, es5, es6/es2015, es2020, esnext).
  2. module: визначає модульну систему, яка використовується у скомпільованому коді (наприклад, commonjs, esnext, node16).
  3. strict: вмикає широкий набір методів суворої перевірки типу. Настійно рекомендується встановити значення true для максимальної безпеки типу. Він дозволяє такі параметри, як:
    • noImplicitAny: Викликає помилку у виразах і оголошеннях із неявним типом any, якщо анотація типу не надається.
    • strictNullChecks: забороняє призначати null або undefined типам, які явно не включають їх у своє об’єднання.

Спробуйте самі

Вправа 1: Обробка strictNullChecks

вправи#ts.m7.l1.e1
Спроби: 0Завантаження…

Під параметром strictNullChecks: true у tsconfig.json ми не можемо призначити null або undefined примітивним типам. Оголошіть функцію під назвою parseAge, яка приймає вхідні дані типу string | null і повертає число, якщо введення не є нульовим і є дійсним цілим числом, інакше повертає 0. Явно обробіть нульовий випадок для проходження суворої компіляції.

Завантаження редактора…
Показати підказку

Перевірте, чи є введення нульовим на початку функції, і поверніть 0 безпосередньо перед обробкою рядка.

Рішення доступне після 3 спроб

Вправа 2: суворе введення без неявного будь-якого

вправи#ts.m7.l1.e2
Спроби: 0Завантаження…

У noImplicitAny: true будь-який параметр, тип якого не можна визначити, має бути явно введений. Створіть функцію під назвою processItems, яка приймає елементи масиву (масив чисел) і функцію зворотного виклику, яка приймає одне число як аргумент і нічого не повертає. Не використовуйте жодних і вводьте все явно.

Завантаження редактора…
Показати підказку

Оголошіть функцію за допомогою функції підпису processItems(items: number[], callback: (item: number) => void): void.

Рішення доступне після 3 спроб