0Pricing
TypeScript Academy · Урок

Объединения и пересечения типов

Объединяйте несколько типов и работайте с ними

«Объединения и пересечения типов» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.

Типы объединения и пересечения

Типы объединения и пересечения

Добро пожаловать на следующий урок! На этом уроке Вы научитесь использовать типы объединения, позволяющие назначать переменной значения нескольких возможных типов, и типы пересечения, объединяющие несколько типов в один. Это мощные инструменты для создания гибкого и надёжного кода. Давайте начнём!

Объединения и пересечения типов — иллюстрация 1

Что такое типы объединения?

Что такое типы объединения?

Типы объединения позволяют переменной хранить значения нескольких типов. Для определения типа объединения можно использовать символ |.

Пример: переменная, которая может содержать строку или число:

Задание: объявите переменную с типом объединения и присвойте ей разные значения.

let value: string | number;
value = "Hello";
console.log(value); // Output: "Hello"

value = 42;
console.log(value); // Output: 42

Использование типов объединения в функциях

Использование типов объединения в функциях

Вы можете использовать типы объединения для параметров функций, чтобы разрешить значения нескольких типов. Пример:

Задание: напишите функцию, которая принимает параметр типа объединения и выводит его в консоль.

function printValue(value: string | number): void {
  console.log(`The value is ${value}`);
}

printValue("Hello"); // Output: The value is Hello
printValue(100); // Output: The value is 100

Что такое типы пересечения?

Что такое типы пересечения?

Типы пересечения объединяют несколько типов в один. Для определения типа пересечения можно использовать символ &.

Пример: объединение двух типов объектов:

Задание: создайте тип пересечения, объединяющий два объекта, и используйте его.

type Person = { name: string };
type Employee = { employeeId: number };

type Staff = Person & Employee;

let staffMember: Staff = {
  name: "Alice",
  employeeId: 123,
};

console.log(staffMember);

Использование проверок типов с объединениями

Использование проверок типов с объединениями

TypeScript не знает, какой тип Вы используете в типе объединения. Для сужения типа можно применять проверки типов. Пример:

Задание: используйте проверки типов для обработки разных типов в объединении.

function display(value: string | number): void {
  if (typeof value === "string") {
    console.log(`String value: ${value.toUpperCase()}`);
  } else {
    console.log(`Number value: ${value * 2}`);
  }
}

display("Hello"); // Output: String value: HELLO
display(5); // Output: Number value: 10

Типы пересечения на практике

Типы пересечения на практике

Типы пересечения полезны при работе с объектами, у которых есть общие свойства. Пример:

Задание: создайте тип пересечения для ролей admin и пользователя.

type Admin = { adminLevel: string };
type User = { username: string };

type AdminUser = Admin & User;

let admin: AdminUser = {
  adminLevel: "super",
  username: "admin123",
};

console.log(`Admin ${admin.username} has level ${admin.adminLevel}`);

Распространённые ошибки при работе с типами объединения и пересечения

Распространённые ошибки при работе с типами объединения и пересечения

Вот несколько распространённых ошибок:

  • Использование типа объединения без обработки всех возможных случаев, например без проверки типа.
  • Излишнее усложнение типов ненужными пересечениями.
  • Присваивание несовместимых значений типу объединения или пересечения.

Совет: всегда проверяйте код, чтобы убедиться, что типы работают ожидаемым образом!

Когда использовать объединения и пересечения

Когда использовать объединения и пересечения

Используйте типы объединения, когда:

  • Переменная может иметь один из нескольких возможных типов.
  • Вам нужна гибкость параметров функции.

Используйте типы пересечения, когда:

  • Нужно объединить несколько объектов или типов в один.
  • Нужно создать более сложные типы для определённых случаев использования.
type A = { x: number };
type B = { y: number };

type AB = A & B;

let obj: AB = { x: 5, y: 10 };

Отличная работа!

Отличная работа!

Поздравляем! Вы научились использовать типы объединения и пересечения для работы со сложными сценариями в TypeScript. Эти инструменты делают код более гибким и выразительным. На следующем уроке мы рассмотрим перечисления и узнаем, как они помогают управлять постоянными значениями. Продолжайте программировать!

Объединения и пересечения типов — иллюстрация 10

Часто задаваемые вопросы

Урок «Объединения и пересечения типов» бесплатный?

Да — полный текст урока «Объединения и пересечения типов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.

Чему я научусь в уроке «Объединения и пересечения типов»?

Объединяйте несколько типов и работайте с ними Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Объединения и пересечения типов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Массивы и кортежи
  2. Объединения и пересечения типов
  3. Перечисления
  4. Литеральные типы
← Назад к TypeScript Academy