TypeScript Essentials

Урок 01 · 8 хв

Що змінюється, якщо ти знаєш JS

TypeScript — це JavaScript плюс контракт. У рантаймі типів немає.

Ти вже пишеш JS. TypeScript — не нова семантика й не інший рантайм. Це шар перевірки до запуску: компілятор читає анотації, свариться на нестиковки й викидає типи. У браузер іде звичайний JavaScript. Коротко те саме сказано в TypeScript in 5 minutes — варто відкрити поруч і звірятися.

Тому typeof user у консолі ніколи не відповість User: у рантаймі це звичайний об'єкт. Оператор typeof у JavaScript дивиться на значення, а не на анотацію. Якщо потрібна перевірка даних — пиши її сам або бери zod. TS цим не займається.

JavaScript
TypeScript

Друкарська помилка в JS — сюрприз у проді. У TS — червона хвиляста лінія.

AI

Можна спитати про це правило«Типи стираються»

AI

Можна спитати про цей пункт«Суть уроку»

Навіщо тоді писати типи

  • Автодоповнення знає форму об'єкта, а не вгадує.
  • Рефакторинг: перейменував поле — компілятор покаже всі місця.
  • Контракт між функціями і між тобою та API.
  • Документація, яка не бреше, бо перевіряється.
Один файл — уже TypeScript

Розширення .ts / .tsx. Збираєш через tsc, Vite, Next — неважливо. Важливо: строгий режим (strict: true) увімкни одразу. Він піднімає одразу кілька прапорців: noImplicitAny, strictNullChecks та інші — список у tsconfig: strict. Без нього компілятор пропустить null там, де ти чекаєш рядок, і сенс TS зникає.

AI

Можна спитати про цей пункт«Навіщо тоді писати типи»

Перевірка

Закріпи, поки не пішов далі

  1. 1. Що залишиться в JS після компіляції const n: number = 1?

  2. 2. Чи можна в runtime перевірити, що значення має тип User?