Що таке TypeScript? Простий посібник для не-розробників
TypeScript — це JavaScript з типами. Ви додаєте мітки, що вказують, яким має бути кожне значення: числом, текстом, списком замовлень — і TypeScript перевіряє ваш код на невідповідності ще до запуску. На сайті TypeScript його описано як «JavaScript із синтаксисом для типів»; типи видаляються, коли код перетворюється на звичайний JavaScript, який потім працює всюди, де працює JavaScript.
Чому це важливо, коли ви створюєте з ШІ
Моделі ШІ пишуть код швидко, а швидкий код має помилки: поле customerName в одному файлі та customer_name в іншому, ціна передана як текст замість числа, функція викликана без обов’язкового значення. У звичайному JavaScript багато таких помилок проявляються, лише коли хтось натисне не ту кнопку.
TypeScript ловить багато з них раніше, поки код ще пишеться:
- ШІ отримує миттєвий зворотний зв’язок. Помилки типів вказують на точний рядок, де щось не так, тож агент може виправити його до того, як ви його побачите.
- Зміни безпечніші. Перейменуйте поле, і TypeScript позначить кожне місце, де ще використовується стара назва.
- Код пояснює себе. Типи документують, що очікує і що повертає функція, що допомагає вам, ШІ та будь-якому розробнику, який працюватиме з кодом пізніше.
- Редактори розумніші. Автодоповнення та «перейти до визначення» працюють краще, бо редактор знає, яким є кожне значення.
Це велика причина, чому багато ШІ-конструкторів застосунків використовують TypeScript за замовчуванням.
Повсякденна аналогія
Уявіть складський склад із позначеними секціями. Кожна секція має табличку: «Лише палети», «Холодильна», «Максимум 500 кг». Коли прибуває вантаж, контролер на дверях порівнює товар із табличкою. Заморожена риба, що прямує до сухої секції, зупиняється на дверях, а не виявляється через тиждень, коли вже пахне.
TypeScript — це контролер на дверях. Типи — це таблички. Перевірка відбувається до того, як товар — ваш код — почне використовуватися. А коли все на місці, таблички знімають: у працюючому JavaScript вже не залишається типів.
Як працює TypeScript
- Ви (або ШІ) пишете файли
.tsабо.tsx— TypeScript з мітками типів. - Перевірювач типів читає код і повідомляє про невідповідності як про помилки в редакторі або під час збирання.
- Крок збирання видаляє типи, створюючи звичайний JavaScript.
- JavaScript запускається в браузері або на сервері (Node.js, Deno, Bun).
Важливий наслідок: TypeScript перевіряє код, який ви написали, а не дані, що надходять під час роботи застосунку. Якщо зовнішній API повертає щось неочікуване, TypeScript цього не побачить, доки ви не додасте перевірку під час виконання.
Приклад: форма бронювання
Наприклад, ви створюєте застосунок бронювання для перукарні. Ось тип, що описує бронювання:
type Booking = {
id: number;
customerEmail: string;
service: "haircut" | "colour" | "blow-dry";
startsAt: Date;
price: number;
notes?: string; // знак ? означає необов’язкове поле
};
І функція, що рахує завдаток:
function depositFor(booking: Booking): number {
return booking.price * 0.2;
}
Тепер подивіться, що ловить TypeScript.
Помилка в назві поля.
depositFor({ id: 1, customerEmail: "lena@example.com", service: "haircut",
startsAt: new Date(), prise: 40 });
TypeScript повідомляє, що prise не є відомою властивістю, а price відсутній. У звичайному JavaScript це тихо порахувало б завдаток як NaN (не число).
Значення неправильного типу.
const booking: Booking = { ...otherFields, price: "40" };
TypeScript повідомляє, що рядок не можна використати там, де очікується число. Без нього "40" * 0.2 випадково працює, але "40" + 5 дає "405" — саме така помилка з’являється в рахунку.
Послуги, якої не існує.
const booking: Booking = { ...otherFields, service: "perm" };
TypeScript повідомляє, що "perm" не є дозволеною послугою. Коли перукарня пізніше додасть перми, ви додасте їх до типу, і TypeScript покаже всі місця, які потребують оновлення: прайс-лист, форму, кольори календаря.
Чого він не може зловити. Якщо форма бронювання надсилає price: "40" з браузера на сервер, TypeScript на сервері цього не бачить під час виконання. Саме тому добре зроблені застосунки також перевіряють вхідні дані, часто за допомогою бібліотеки валідації, яка перевіряє структуру і перетворює її на коректний Booking.
TypeScript проти JavaScript
| JavaScript | TypeScript | |
|---|---|---|
| Що це | Мова, яку запускають браузери | JavaScript плюс синтаксис типів |
| Запускається в браузерах напряму | Так | Спочатку перетворюється на JavaScript |
| Ловить помилки типів | Під час виконання, якщо взагалі | Під час написання, до запуску |
| Налаштування | Не потрібне | Крок збирання (зазвичай його забезпечують інструменти на кшталт Vite або Next.js) |
| Добре підходить для | Невеликих скриптів, швидких експериментів | Застосунків, які будуть рости й змінюватися |
| Розширення файлів | .js, .jsx | .ts, .tsx |
Пояснення поширених термінів
| Термін | Що означає |
|---|---|
| Тип | Опис того, яким може бути значення: числом, текстом, певною формою об’єкта. |
| Анотація типу | Мітка, написана в коді, наприклад price: number. |
| Виведення типу | Здатність TypeScript самостійно визначити тип без мітки. |
| Інтерфейс / псевдонім типу | Іменований опис форми об’єкта, наприклад Booking. |
| Об’єднаний тип (union) | Значення, яким може бути один із кількох варіантів, наприклад "haircut" | "colour". |
| Необов’язкова властивість | Поле, яке може бути відсутнім, позначене знаком ?. |
any | Тип, що вимикає перевірку для значення — аварійний вихід, яким слід користуватися обережно. |
| Помилка типу | Повідомлення TypeScript про те, що щось не відповідає. |
| Компіляція / транспіляція | Перетворення TypeScript на JavaScript. |
.tsx | Файл TypeScript, що містить JSX, використовується в застосунках React. |
tsconfig.json | Файл налаштувань, який визначає, наскільки суворо TypeScript перевіряє проєкт. |
| Валідація під час виконання | Перевірка реальних вхідних даних, поки застосунок працює. |
Поширені помилки та хибні уявлення
- «TypeScript робить код вільним від помилок». Він ловить невідповідності в структурі даних, а не хибну логіку. Завдаток 2% замість 20% пройде перевірку типів без проблем.
- «Типи захищають мене від поганих вхідних даних». Типи зникають під час виконання. Перевіряйте дані від користувачів, форм і API.
anyскрізь. Коли ШІ застрягає, він може звернутися доanyабо// @ts-ignore, щоб заглушити помилки. Це приховує проблеми замість їх виправлення.- Ігнорування помилок типів, бо попередній перегляд працює. Деякі інструменти все одно запускають код із помилками типів. Ці помилки все одно є багами, що чекають свого часу.
- «TypeScript повільніший». Типи видаляються перед запуском; JavaScript, який виконується, по суті той самий.
- «Це лише для великих команд». Соло-творці також отримують вигоду, особливо коли більшість правок робить ШІ.
Що попросити у вашого ШІ-конструктора
- «Використовуй TypeScript із увімкненим строгим режимом.»
- «Визнач спільні типи для наших основних записів — Customer, Booking, Invoice — і використовуй їх і на фронтенді, і на бекенді.»
- «Не використовуй
anyабо@ts-ignore, щоб обійти помилки; виправ першопричину і скажи мені, що це було.» - «Перевіряй усі вхідні дані на сервері, а не лише типами.»
- «Запусти перевірку типів і виправ кожну помилку, перш ніж скажеш, що це готово.»
- «Коли ти перейменовуєш поле, онови кожне місце, яке позначає TypeScript.»
- «Поясни цю помилку типу простою англійською.»
Щоб дізнатися більше про перевірку того, що створив ШІ, див. як перевіряти код, згенерований ШІ і як налагоджувати застосунок, створений ШІ.
TypeScript у Mythex
Якщо ви нічого конкретного не просите, Mythex запускає нові проєкти на Vite + React + TypeScript + Tailwind. Редактор коду має мовний аналіз — доповнення, діагностику та перехід до визначення для TypeScript і JavaScript та інших мов — тож помилки типів видно в самому коді, а не лише в попередньому перегляді. Редактор лише для читання на Free і повністю редагується на Pro. Ви все ще можете попросити іншу конфігурацію у своєму першому запиті; сторінка документації про як обирається технологія пояснює як, а документація редактора коду описує, що показує редактор.
Запитання
Що таке TypeScript простими словами?
TypeScript — це JavaScript з типами. Ви позначаєте, яким має бути кожне значення: числом, текстом чи записом клієнта, а TypeScript перевіряє код на невідповідності до запуску. Потім код перетворюється на звичайний JavaScript.
Чи TypeScript — це окрема мова від JavaScript?
Це надмножина JavaScript: JavaScript плюс додатковий синтаксис для типів. Сайт TypeScript описує його як JavaScript із синтаксисом для типів. Типи видаляються, коли код перетворюється на JavaScript для запуску.
Навіщо ШІ-конструктори використовують TypeScript?
Типи дають ШІ та інструментам навколо нього швидкий спосіб ловити помилки, наприклад передачу тексту там, де очікується число, або помилку в назві поля. Помилки виявляються раніше, ніж їх натрапить користувач, що полегшує перевірку й зміну згенерованого ШІ коду.
Чи робить TypeScript застосунок вільним від помилок?
Ні. Він ловить цілий клас помилок, пов’язаних зі структурою даних, але не помилки в бізнес-логіці, і не перевіряє дані, що надходять під час роботи від користувачів чи API, якщо ви не додасте валідацію.
Хто створив TypeScript?
TypeScript — це мова з відкритим кодом, розроблена Microsoft. Він працює всюди, де працює JavaScript, зокрема в браузерах, Node.js, Deno і Bun.