
Урок 01 · 8 хв
Що змінюється, якщо ти знаєш JS
TypeScript — це JavaScript плюс контракт. У рантаймі типів немає.
Ти вже пишеш JS. TypeScript — не нова семантика й не інший рантайм. Це шар перевірки до запуску: компілятор читає анотації, свариться на нестиковки й викидає типи. У браузер іде звичайний JavaScript. Коротко те саме сказано в TypeScript in 5 minutes — варто відкрити поруч і звірятися.
Тому typeof user у консолі ніколи не відповість User: у рантаймі це звичайний об'єкт. Оператор typeof у JavaScript дивиться на значення, а не на анотацію. Якщо потрібна перевірка даних — пиши її сам або бери zod. TS цим не займається.
Друкарська помилка в JS — сюрприз у проді. У TS — червона хвиляста лінія.
Навіщо тоді писати типи
- Автодоповнення знає форму об'єкта, а не вгадує.
- Рефакторинг: перейменував поле — компілятор покаже всі місця.
- Контракт між функціями і між тобою та API.
- Документація, яка не бреше, бо перевіряється.
Розширення .ts / .tsx. Збираєш через tsc, Vite, Next — неважливо. Важливо: строгий режим (strict: true) увімкни одразу. Він піднімає одразу кілька прапорців: noImplicitAny, strictNullChecks та інші — список у tsconfig: strict. Без нього компілятор пропустить null там, де ти чекаєш рядок, і сенс TS зникає.
- TypeScript in 5 minutes — як TS надбудовується над JS
- The Basics — що компілятор перевіряє і що викидає
- tsconfig · strict — які перевірки вмикає один прапорець
Перевірка
Закріпи, поки не пішов далі
1. Що залишиться в JS після компіляції
const n: number = 1?2. Чи можна в runtime перевірити, що значення має тип
User?