Перейти к основному содержимому
Модуль 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 или неопределенное значение примитивным типам. Объявите функцию с именем parseAge, которая принимает входные данные типа string | null и возвращает число, если входные данные не равны нулю и являются допустимым целым числом, в противном случае возвращается 0. Явно обрабатывайте нулевой случай для прохождения строгой компиляции.

Загрузка редактора…
Показать подсказку

Проверьте, имеет ли ввод значение NULL в начале функции, и верните 0 непосредственно перед обработкой строки.

Решение доступно после 3 попыток

Упражнение 2. Строгая типизация без неявного Any

Упражнение#ts.m7.l1.e2
Попыток: 0Загрузка…

При noImplicitAny: true любой параметр, тип которого не может быть выведен, должен быть указан явно. Создайте функцию с именемprocessItems, которая принимает элементы массива (массив чисел), и функцию обратного вызова, которая принимает одно число в качестве аргумента и ничего не возвращает. Обязательно не используйте их и вводите все явно.

Загрузка редактора…
Показать подсказку

Объявите функцию с подписью functionprocessItems(items:number[],callback:(item:number)=>void):void.

Решение доступно после 3 попыток