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

Что такое типы объединения?
Что такое типы объединения?
Типы объединения позволяют переменной хранить значения нескольких типов. Для определения типа объединения можно использовать символ |.
Пример: переменная, которая может содержать строку или число:
Задание: объявите переменную с типом объединения и присвойте ей разные значения.
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. Эти инструменты делают код более гибким и выразительным. На следующем уроке мы рассмотрим перечисления и узнаем, как они помогают управлять постоянными значениями. Продолжайте программировать!

Часто задаваемые вопросы
Урок «Объединения и пересечения типов» бесплатный?
Да — полный текст урока «Объединения и пересечения типов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.
Все уроки этого курса
- Массивы и кортежи
- Объединения и пересечения типов
- Перечисления
- Литеральные типы