Чому TS-код потрібно компілювати?
1. Тому що браузери та Node.js не розуміють TypeScript
TypeScript - це надбудова над JavaScript, і його основна мета - додавання типів та нових синтаксичних можливостей. Але:
- браузери та Node.js виконують лише JavaScript,
- тому TypeScript не можна запустити напряму.
Приклад:
javascript
const user: string = "Tim";Браузер не знає, що таке
: string, і видасть помилку, якщо спробувати запустити цей код напряму.
2. Що робить компілятор (tsc)
Компілятор TypeScript (tsc) виконує два кроки:
- Перевірка типів Він аналізує весь проєкт і перевіряє, чи відповідають значення вказаним типам.
javascript
let count: number = "5"; // Помилка: очікується number- Транспіляція (перетворення)
Він видаляє всю типову інформацію (
: string,interface,type,enumтощо) і генерує чистий JavaScript, який можна запустити.
javascript
// Після компіляції:
var user = "Tim";3. Приклад: до і після компіляції
TypeScript (код розробника)
javascript
function greet(name: string): string {
return `Hello, ${name}!`;
}Після компіляції в JS
javascript
function greet(name) {
return "Hello, " + name + "!";
}Типи (
: string) повністю зникають - залишається чистий JavaScript.
4. Компіляція також дозволяє:
- Використовувати сучасні можливості JS (ES2022, ESNext) навіть у старих браузерах
tscперетворює код у старіший стандарт (наприклад, ES5);- Перевіряти типову сумісність між файлами;
- Налаштовувати збірку під різні середовища (
target,module,outDir); - Працювати з модулями, namespace, декораторами та enum, яких немає в JS.
5. Що саме відбувається під час збірки
Якщо у тебе є проєкт з tsconfig.json, при запуску:
javascript
npx tscTypeScript:
- Перевіряє всі
.tsі.tsxфайли; - Ловить типові помилки;
- Генерує
.jsфайли у вказану директорію (outDir); - (опційно) Створює
.d.tsфайли - описи типів для бібліотек.
6. Підсумок
TypeScript потрібно компілювати, тому що:
- він не є виконуваною мовою (браузери не розуміють TS);
- він містить типову інформацію, яку потрібно видалити;
- він часто використовує новий синтаксис, що потребує перетворення на сумісний JavaScript.
Компіляція робить код безпечним, перевіреним і сумісним з будь-яким JS-середовищем.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.