**Объединение UnionTypes

Тип данных “объединение” (union) позволяет объединить два или более типов данных в один. Он обозначается символом |.

type MyType = string | number;

В этом примере мы определили тип MyType, который может быть строкой или числом.

Объединение используется, когда переменная или параметр функции может иметь несколько разных типов значений. Например, переменная result может иметь тип number или string, в зависимости от условий:

let result: number | string;
 
if (condition) {
  result = 42;
} else {
  result = 'Error';
}

**Пересечение intersectionTypes

Тип данных “пересечение” (intersection) позволяет объединить два или более типов данных в один, который содержит все свойства каждого из типов. Он обозначается символом &.

type Person = { name: string } & { age: number };
 
const person: Person = { name: 'John', age: 30 };

В этом примере мы объединили два типа данных name: string и age: number с помощью оператора &, чтобы создать новый тип Person, который содержит оба свойства. Затем мы создали объект person, который соответствует типу Person.

Пересечение используется, когда требуется создать новый тип данных, который обладает всеми свойствами нескольких типов. Например, если у нас есть два типа Employee и Manager, и мы хотим создать новый тип ManagerWithEmployee, который содержит все свойства обоих типов, мы можем использовать оператор &:

type Employee = { name: string, salary: number };
type Manager = { department: string };
 
type ManagerWithEmployee = Manager & Employee;
 
const manager: ManagerWithEmployee = { name: 'John', salary: 5000, department: 'Sales' };

В этом примере мы объединили типы Employee и Manager, чтобы создать новый тип ManagerWithEmployee, который содержит все свойства обоих типов. Затем мы создали объект manager, который соответствует типу ManagerWithEmployee.


Назад