> Что такое объединение и пересечение типов в TypeScript (TypeScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: Инрэко, ООО Премиум ИТ Солюшен, SmartWay

Стек: TypeScript

> Пример ответа

Объединение типов (Union Types) и пересечение типов (Intersection Types) - это два фундаментальных механизма композиции типов в TypeScript.

Объединение (Union) обозначается символом | и означает, что значение может быть одним из перечисленных типов. Например, string | number - переменная может быть либо строкой, либо числом. На практике это часто используется для обработки опциональных значений или разных форматов данных. При работе с объединением TypeScript сужает тип через контроль потока (type narrowing), например, с помощью typeof или проверок.

TYPESCRIPT
function formatId(id: string | number) {
if (typeof id === 'string') {
return id.toUpperCase(); // здесь id - string
}
return id.toFixed(2); // здесь id - number
}

Пересечение (Intersection) обозначается символом & и означает, что значение должно удовлетворять всем перечисленным типам одновременно. По сути, это объединение свойств нескольких типов в один. Чаще всего применяется для комбинирования объектов или расширения интерфейсов без наследования.

TYPESCRIPT
interface HasName { name: string }
interface HasAge { age: number }
type Person = HasName & HasAge; // должен иметь и name, и age
const user: Person = { name: 'Alice', age: 30 }; // корректно

Ключевое различие: объединение - это "или" (любой из), пересечение - это "и" (все сразу).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью