Prog Academy
RU UA
Програмування

Що таке TypeScript?

TypeScript — надбудова над JavaScript, яка додає статичні типи. Ви вказуєте, якого типу дані очікує функція чи змінна, а компілятор знаходить невідповідності ще до запуску коду й перетворює вихідник на звичайний JavaScript.

Будь-який коректний JavaScript-код є коректним TypeScript-кодом, тому проєкт можна переводити поступово, файл за файлом. Браузер TypeScript не виконує — на виході завжди виходить звичайний JS.

Практична вигода помітна на проєктах, що живуть довше за пару місяців: редактор точно підказує доступні поля й методи, безпечне перейменування перестає бути ризиком, а класичні помилки на кшталт «undefined is not a function» ловляться під час збірки.

Де застосовується

TypeScript став стандартом у великих фронтенд-проєктах: інтерфейси на React і Angular, застосунки на Next.js, серверна частина на Node.js і NestJS. У вакансіях він давно вказується окремою вимогою поруч із React, а не як приємне доповнення.

Особливо помітна користь у командній роботі. Типи описують контракт між модулями: редактор одразу підказує поля відповіді API, перейменування поля проходить по всьому проєкту без ручного пошуку, а новий розробник читає сигнатури замість того, щоб зʼясовувати формат даних за чужим кодом.

Приклад

Бекенд перейменував поле у відповіді API. У звичайному JavaScript помилка спливе у користувача порожнім значенням на екрані. У TypeScript проєкт просто не збереться, і розробник побачить усі місця, які треба виправити, ще до викочування.

interface Order {
  id: number;
  total: number;
  status: 'new' | 'paid' | 'cancelled';
}

function isRefundable(order: Order): boolean {
  return order.status === 'paid' && order.total > 0;
}

// Помилка компіляції: 'shipped' немає серед допустимих статусів
isRefundable({ id: 1, total: 500, status: 'shipped' });
Описаний тип не дасть звернутися до неіснуючого поля і підкаже доступні поля просто в редакторі.

Часті запитання

Чи потрібно вчити JavaScript перед TypeScript?

Так, обовʼязково. TypeScript не замінює мову, а додає до неї шар типів — уся логіка, асинхронність і робота з даними лишаються тими самими. Вивчати типи, не розуміючи, що саме вони описують, безглуздо і лише заплутує.

Чи сповільнює TypeScript розробку?

На старті — трохи, бо типи треба описувати. Далі ефект зворотний: редактор точно підказує, рефакторинг перестає бути ризиком, а частина помилок ловиться при збірці. На проєкті довшому за пару місяців вкладення окупається майже завжди.

Чи можна перевести наявний проєкт на TypeScript поступово?

Так, це стандартна практика і найпоширеніший сценарій міграції. Будь-який коректний JavaScript є коректним TypeScript, тому файли переводять по одному, починаючи з найважливіших модулів. Суворість перевірок вмикають поетапно, щоб не зупиняти роботу над продуктом.

Чи виконується TypeScript у браузері?

Ні. Браузер розуміє лише JavaScript, тому перед запуском код компілюється: типи відкидаються, лишається звичайний JS. Саме тому типи не впливають на швидкість роботи застосунку і не існують під час виконання.

Повʼязані терміни