Пересечение типов в TypeScript

В этом уроке вы узнаете о пересечении типов в TypeScript. Пересечение типов создает новый тип путем объединения нескольких существующих типов. Новый тип имеет все особенности существующих типов.

Чтобы объединить типы, вы используете оператор & следующим образом:

type typeAB = typeA & typeB;

typeAB будет иметь все свойства как из typeA, так и typeB.

Обратите внимание, что тип union использует оператор |, который определяет переменную, которая может содержать значение либо typeA, либо typeB

let varName = typeA | typeB; // union type

Предположим, что у вас есть три интерфейса: BusinessPartner, Identity и Contact.

interface BusinessPartner {
    name: string;
    credit: number;
}

interface Identity {
    id: number;
    name: string;
}

interface Contact {
    email: string;
    phone: string;
}

Ниже определяются два типа пересечения:

type Employee = Identity & Contact;
type Customer = BusinessPartner & Contact;

Тип Employee содержит все свойства типа Identity и Contact :

type Employee = Identity & Contact;

let e: Employee = {
    id: 100,
    name: 'John Doe',
    email: 'john.doe@example.com',
    phone: '(408)-897-5684'
};

А тип Customer содержит все свойства типа BusinessPartner и Contact :

type Customer = BusinessPartner & Contact;

let c: Customer = {
    name: 'ABC Inc.',
    credit: 1000000,
    email: 'sales@abcinc.com',
    phone: '(408)-897-5735'
};

Позже, если вы хотите реализовать продажи сотрудникам, вы можете создать новый тип пересечения, который содержит все свойства типов Identity, Contact и BusinessPartner :

type Employee = Identity & BusinessPartner & Contact;

let e: Employee = {
    id: 100,
    name: 'John Doe',
    email: 'john.doe@example.com',
    phone: '(408)-897-5684',
    credit: 1000
};

Обратите внимание, что и BusinessPartner, и Identity имеют свойство name одного и того же типа. Если их нет, то у вас будет ошибка.

Порядок типов

Когда вы пересекаете типы, порядок типов не имеет значения. Например:

type typeAB = typeA & typeB;
type typeBA = typeB & typeA;

В этом примере typeAB и typeBA имеют одинаковые свойства.

  • Пересечение типов в TypeScript объединяет два или более типов для создания нового типа, обладающего всеми свойствами существующих типов.
  • Порядок типов не важен при комбинировании типов.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript