**Объединение 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
.