Skip to main content

Що таке тип (type) в TypeScript?

1. Що таке type

У TypeScript ключове слово type використовується для створення користувацького типу

  • тобто, нового імені для комбінації наявних типів.

Це схоже на "ярлик" або "псевдонім типу" (type alias). TypeScript не додає новий об'єкт у пам'ять - це просто опис структури даних для перевірки на етапі компіляції.


Приклад 1: простий тип (type alias)

javascript
type UserName = string; const name: UserName = "Tim";

Тут UserName - це просто псевдонім для типу string. Типи допомагають робити код самодокументованим.


Приклад 2: тип об'єкта

javascript
type User = { id: number; name: string; isAdmin?: boolean; // необов'язкова властивість }; const user: User = { id: 1, name: "Tim", };

TypeScript перевірить, що user містить потрібні поля та правильні типи.


2. type ≠ змінна

Типи не існують під час виконання - вони потрібні лише компілятору для перевірки та підказок.

javascript
type Product = { id: number; title: string };

Після компіляції в JS - жодного type Product не залишиться.


3. Типи можна об'єднувати і комбінувати

Ось де type розкриває всю силу.


Union Types (об'єднання)

Значення може бути одного з кількох типів:

javascript
type Status = "loading" | "success" | "error"; let current: Status = "loading"; // OK current = "fail"; // Помилка: такого значення немає

Intersection Types (перетин)

Об'єднує кілька типів в один "складний".

javascript
type Person = { name: string }; type Employee = { company: string }; type Worker = Person & Employee; const w: Worker = { name: "Tim", company: "Acme Inc" }; // OK

Типи функцій

javascript
type Sum = (a: number, b: number) => number; const add: Sum = (x, y) => x + y;

Типи масивів і кортежів

javascript
type Numbers = number[]; type Point = [number, number]; // кортеж (tuple)

4. Різниця між type та interface

Можливістьinterfacetype
Опис об'єктівТакТак
Розширення (extends)ТакТак (&)
Об'єднання (merging)ТакНі
Union і примітивиНіТак
Tuple і FunctionНіТак
Реалізація класом (implements)ТакТак

Правило практики:

  • Використовуй interface - для об'єктів, структур і класів
  • Використовуй type - для комбінацій, об'єднань і alias'ів

5. Приклад - комбінування type та interface

javascript
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 = "гнучкий конструктор для опису даних".

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.