Крок 1. Ініціалізація проєкту
Спочатку створимо нову теку та ініціалізуємо Node.js-проєкт за допомогою npm
:
mkdir my-typescript-app
cd my-typescript-app
npm init -y
Крок 2. Встановлення TypeScript
Додаємо TypeScript як dev-залежність:
npm install --save-dev typescript ts-node @types/node
- typescript
— компілятор TypeScript
- ts-node
— дозволяє запускати TS-файли без попередньої компіляції
- @types/node
— типи для стандартних Node.js API
Крок 3. Створення файлу tsconfig.json
Ініціалізуємо конфігурацію TypeScript:
npx tsc --init
Приклад файлу tsconfig.json
{
"compilerOptions": {
"target": "ES2020", // Версія JS у вихідному коді
"module": "CommonJS", // Система модулів (для Node.js)
"rootDir": "src", // Вхідна папка з TypeScript-кодом
"outDir": "dist", // Куди компілюється код JS
"strict": true, // Жорсткий режим типізації
"esModuleInterop": true, // Сумісність з CommonJS модулями
"skipLibCheck": true, // Пропуск перевірки типів у залежностях
"forceConsistentCasingInFileNames": true // Перевірка регістру у назвах файлів
},
"include": ["src"], // Які файли компілювати
"exclude": ["node_modules"] // Що ігнорувати
}
Крок 4. Структура проєкту
my-typescript-app/
├─ node_modules/
├─ src/
│ └─ index.ts
├─ dist/ (буде створена після компіляції)
├─ package.json
└─ tsconfig.json
Крок 5. Приклад коду index.ts
const greet = (name: string): string => {
return `Привіт, ${name}!`;
};
console.log(greet("TS Developer"));
Крок 6. Компіляція та запуск
Зкомпілювати код у JS:
npx tsc
Запустити напряму з ts-node
:
npx ts-node src/index.ts
Крок 7. Налаштування скриптів у package.json
{
"scripts": {
"build": "tsc",
"start": "node dist/index.js",
"dev": "ts-node src/index.ts"
}
}
Після цього ці скрипти можна викликати за допомогою npm run
, наприклад:
npm run dev
Або через yarn
, pnpm
чи інший пакетний менеджер.
Створення tsconfig.json
— ключовий етап у будь-якому TypeScript-проєкті. Він визначає правила компіляції та допомагає підтримувати чисту структуру коду. Для Java-розробників це можна порівняти з pom.xml
(Maven) або build.gradle
, але з акцентом на типізацію та вихідний код.
Що таке модулі?
У Node.js та TypeScript кожен файл можна розглядати як окремий модуль. Модулі дозволяють структурувати код, розділяти його на частини і повторно використовувати у різних частинах застосунку.
Експорт у TypeScript
Експортувати можна функції, змінні, класи, інтерфейси.
// math.ts
export const add = (a: number, b: number): number => a + b;
export function multiply(a: number, b: number): number {
return a * b;
}
export class Calculator {
divide(a: number, b: number): number {
return a / b;
}
}
Імпорт у TypeScript
// index.ts
import { add, multiply, Calculator } from "./math";
console.log(add(2, 3)); // 5
console.log(multiply(4, 5)); // 20
const calc = new Calculator();
console.log(calc.divide(10, 2)); // 5
Експорт за замовчуванням (default export)
Модуль може експортувати один об’єкт за замовчуванням.
// logger.ts
export default function log(message: string): void {
console.log(`[LOG]: ${message}`);
}
// index.ts
import log from "./logger";
log("Привіт з Node.js + TypeScript!");
Перейменування імпорту
Можна імпортувати під іншим ім’ям:
// index.ts
import { add as sum } from "./math";
console.log(sum(7, 8)); // 15
Експорт з повторним використанням (re-export)
Можна створювати централізовані "модулі-барелі", які експортують усе з кількох файлів.
// utils/index.ts
export * from "../math";
export { default as log } from "../logger";
// index.ts
import { add, log } from "./utils";
console.log(add(1, 2));
log("Використовуємо реекспорт");
Відмінності між CommonJS та ES Modules
- CommonJS (стандарт Node.js до версії 12) — використовує
require
/module.exports
- ES Modules (сучасний стандарт) — використовує
import
/export
// CommonJS приклад
const fs = require("fs");
module.exports = { myFunc };
// ES Module приклад
import fs from "fs";
export const myFunc = () => {};
Налаштування у tsconfig.json
У файлі tsconfig.json
важливо вказати систему модулів:
{
"compilerOptions": {
"module": "CommonJS", // для Node.js
"target": "ES2020"
}
}
Модульність у TypeScript аналогічна пакетам у Java:
import/export
≈ import
у Java.
Використання ES Modules (import
) є рекомендованим підходом для сучасних проєктів, тоді як CommonJS застосовується переважно у старих системах.
Коментарі
Дописати коментар