Модульні уроки (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 або undefined примітивним типам. Оголошіть функцію під назвою parseAge, яка приймає вхідні дані типу string | null і повертає число, якщо введення не є нульовим і є дійсним цілим числом, інакше повертає 0. Явно обробіть нульовий випадок для проходження суворої компіляції.
Показати підказку
Перевірте, чи є введення нульовим на початку функції, і поверніть 0 безпосередньо перед обробкою рядка.
Рішення доступне після 3 спроб
Вправа 2: суворе введення без неявного будь-якого
У noImplicitAny: true будь-який параметр, тип якого не можна визначити, має бути явно введений. Створіть функцію під назвою processItems, яка приймає елементи масиву (масив чисел) і функцію зворотного виклику, яка приймає одне число як аргумент і нічого не повертає. Не використовуйте жодних і вводьте все явно.
Показати підказку
Оголошіть функцію за допомогою функції підпису processItems(items: number[], callback: (item: number) => void): void.
Рішення доступне після 3 спроб