Що таке TypeScript?
TypeScript - це надбудова (або надмножина) мови JavaScript, що додає систему статичної типізації та низку можливостей, які спрощують розробку великих проєктів.
Основна ідея
TypeScript дозволяє визначати типи даних (наприклад, string, number, boolean, object, array, function тощо) ще до виконання програми. Це допомагає знаходити помилки на етапі компіляції, а не під час роботи коду.
javascript
function greet(name: string): string {
return `Привіт, ${name}!`;
}
greet('Tim'); // коректно
greet(123); // помилка компіляції: очікується stringЯк це працює
- Код на TypeScript (.ts) транспілюється у звичайний JavaScript (.js).
- Компілятор
tscперевіряє типи і перетворює код на стандартний JavaScript, який можна запускати в браузері або Node.js.
Основні переваги
- Раннє виявлення помилок - IDE та компілятор підказують, де порушуються типи.
- Інтелектуальне автодоповнення - редактори на кшталт VSCode краще розуміють структуру коду.
- Підтримка сучасних можливостей JS - TypeScript за потреби компілюється у старіші версії JavaScript.
- Краще проєктування API - типи допомагають документувати інтерфейси та класи.
- Сумісність з JavaScript - будь-який JS-код є валідним TypeScript.
Основні можливості
- Інтерфейси (
interface) - Узагальнення (Generics)
- Модулі та простори імен
- Перелічення (
enum) - Декоратори
- Типи об'єднань (
|) та перетинів (&) - Звуження типів (type narrowing)
- Утилітні типи (
Partial,Pick,Recordтощо)
Приклад комплексного використання
javascript
interface User {
id: number;
name: string;
isAdmin?: boolean; // необов'язкове поле
}
function printUser(user: User): void {
const role = user.isAdmin ? 'адміністратор' : 'користувач';
console.log(`${user.name} - ${role}`);
}
const user: User = { id: 1, name: 'Tim' };
printUser(user);Підсумок
TypeScript - це інструмент для підвищення надійності та зручності розробки на JavaScript. Він робить код передбачуваним, безпечним і само-документованим, особливо у великих проєктах.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.