Уроки модуля (1/2)
Конфигурация с помощью tsconfig.json
Файл tsconfig.json указывает корневой каталог проекта TypeScript и параметры компилятора, необходимые для сборки проекта.
Всякий раз, когда вы запускаете tsc в каталоге проекта, компилятор ищет этот файл, чтобы управлять своим поведением при компиляции.
Структура файла tsconfig.json
Типичный файл конфигурации выглядит так:
{
"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: указывает файлы или папки, которые следует игнорировать во время компиляции.
Ключевые параметры компилятора
Вот некоторые из наиболее важных настроек, которые следует знать:
target: указывает версию вывода JavaScript компилятора (например,es5,es6/es2015,es2020,esnext).module: указывает систему модулей, используемую в скомпилированном коде (например,commonjs,esnext,node16).strict: обеспечивает широкий набор методов строгой проверки типов. Настоятельно рекомендуется установить значениеtrueдля максимальной безопасности типов. Это позволяет использовать такие опции, как:noImplicitAny: вызывает ошибку в выражениях и объявлениях с подразумеваемым типомany, если аннотация типа не указана.strictNullChecks: предотвращает присвоениеnullилиundefinedтипам, которые явно не включают их в свое объединение.
Попробуйте сами
Упражнение 1. Обработка strictNullChecks
В соответствии с параметром strictNullChecks: true в tsconfig.json мы не можем присвоить значение null или неопределенное значение примитивным типам. Объявите функцию с именем parseAge, которая принимает входные данные типа string | null и возвращает число, если входные данные не равны нулю и являются допустимым целым числом, в противном случае возвращается 0. Явно обрабатывайте нулевой случай для прохождения строгой компиляции.
Показать подсказку
Проверьте, имеет ли ввод значение NULL в начале функции, и верните 0 непосредственно перед обработкой строки.
Решение доступно после 3 попыток
Упражнение 2. Строгая типизация без неявного Any
При noImplicitAny: true любой параметр, тип которого не может быть выведен, должен быть указан явно. Создайте функцию с именемprocessItems, которая принимает элементы массива (массив чисел), и функцию обратного вызова, которая принимает одно число в качестве аргумента и ничего не возвращает. Обязательно не используйте их и вводите все явно.
Показать подсказку
Объявите функцию с подписью functionprocessItems(items:number[],callback:(item:number)=>void):void.
Решение доступно после 3 попыток