Що таке тип (type) в TypeScript?
1. Що таке type
У TypeScript ключове слово
typeвикористовується для створення користувацького типу
- тобто, нового імені для комбінації наявних типів.
Це схоже на "ярлик" або "псевдонім типу" (type alias). TypeScript не додає новий об'єкт у пам'ять - це просто опис структури даних для перевірки на етапі компіляції.
Приклад 1: простий тип (type alias)
type UserName = string;
const name: UserName = "Tim";Тут
UserName- це просто псевдонім для типуstring. Типи допомагають робити код самодокументованим.
Приклад 2: тип об'єкта
type User = {
id: number;
name: string;
isAdmin?: boolean; // необов'язкова властивість
};
const user: User = {
id: 1,
name: "Tim",
};TypeScript перевірить, що
userмістить потрібні поля та правильні типи.
2. type ≠ змінна
Типи не існують під час виконання - вони потрібні лише компілятору для перевірки та підказок.
type Product = { id: number; title: string };Після компіляції в JS - жодного type Product не залишиться.
3. Типи можна об'єднувати і комбінувати
Ось де type розкриває всю силу.
Union Types (об'єднання)
Значення може бути одного з кількох типів:
type Status = "loading" | "success" | "error";
let current: Status = "loading"; // OK
current = "fail"; // Помилка: такого значення немаєIntersection Types (перетин)
Об'єднує кілька типів в один "складний".
type Person = { name: string };
type Employee = { company: string };
type Worker = Person & Employee;
const w: Worker = { name: "Tim", company: "Acme Inc" }; // OKТипи функцій
type Sum = (a: number, b: number) => number;
const add: Sum = (x, y) => x + y;Типи масивів і кортежів
type Numbers = number[];
type Point = [number, number]; // кортеж (tuple)4. Різниця між type та interface
| Можливість | interface | type |
|---|---|---|
| Опис об'єктів | Так | Так |
Розширення (extends) | Так | Так (&) |
| Об'єднання (merging) | Так | Ні |
| Union і примітиви | Ні | Так |
| Tuple і Function | Ні | Так |
Реалізація класом (implements) | Так | Так |
Правило практики:
- Використовуй
interface- для об'єктів, структур і класів- Використовуй
type- для комбінацій, об'єднань і alias'ів
5. Приклад - комбінування type та interface
interface User {
id: number;
name: string;
}
type Admin = User & { role: "admin" };
const tim: Admin = { id: 1, name: "Tim", role: "admin" };Тут
typeвикористовується для розширення інтерфейсу через перетин (&).
6. Навіщо взагалі потрібен type
- Робить типи придатними для повторного використання
- Спрощує читання і супровід коду
- Дозволяє комбінувати і збирати складні структури
- Допомагає IDE підказувати та перевіряти типи
- Робить код самодокументованим
Підсумок
type- це механізм TypeScript для створення нових користувацьких типів (псевдонімів), щоб описувати форму даних, об'єднувати і комбінувати типи.Він використовується для:
- об'єднань (
|),- перетинів (
&),- функцій, кортежів і примітивів,
- а також для зручності та читабельності коду.
type= "гнучкий конструктор для опису даних".
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.