В TypeScript вы можете объединить несколько типов в один интерфейс с помощью оператора |
(или «или»). Это называется объединением типов.
Чтобы объединить типы, вы просто указываете их через оператор |
в определении интерфейса. Например, предположим, у нас есть два типа: User
и Admin
, и мы хотим создать интерфейс, который может представлять и того и другого:
interface User { name: string; age: number; } interface Admin { name: string; role: string; } type UserOrAdmin = User | Admin;
В этом примере User
и Admin
- отдельные интерфейсы с разными свойствами. Мы создаем новый тип UserOrAdmin
, который может быть либо User
, либо Admin
. Теперь у нас есть тип, который может представлять любого пользователя или администратора.
Вы можете использовать UserOrAdmin
в качестве типа для переменных или параметров функции:
function getUserInfo(userOrAdmin: UserOrAdmin) { console.log(userOrAdmin.name); if ('age' in userOrAdmin) { console.log(userOrAdmin.age); } if ('role' in userOrAdmin) { console.log(userOrAdmin.role); } }
В этом примере мы определяем функцию getUserInfo
, которая принимает параметр userOrAdmin
с типом UserOrAdmin
. Внутри функции, мы можем использовать свойства name
и age
если userOrAdmin
имеет тип User
, и свойства name
и role
если userOrAdmin
имеет тип Admin
. Мы можем использовать оператор in
для проверки наличия свойства в объекте.
Однако, стоит отметить, что при использовании объединения типов, вы можете использовать только общие свойства, которые присутствуют во всех объединенных типах. Например, если у User
есть свойство age
, а у Admin
его нет, вы не сможете использовать age
в UserOrAdmin
.