Как правильно присвоить несколько interface переменной typescript?

Пользователь

от eryn.rodriguez , в категории: JavaScript , год назад

Как правильно присвоить несколько interface переменной typescript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от rebekah , год назад

@eryn.rodriguez 

В TypeScript можно присвоить несколько интерфейсов переменной с помощью оператора "&" для объединения интерфейсов.


Например, у нас есть интерфейсы IUser и IAuthorizedUser, и мы хотим присвоить переменной user значения, которое реализует оба этих интерфейса:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
interface IUser {
  name: string;
  age: number;
}

interface IAuthorizedUser {
  username: string;
  password: string;
}

let user: IUser & IAuthorizedUser;
user = {
  name: "John",
  age: 25,
  username: "john123",
  password: "password123"
};


В этом примере переменная user должна реализовывать и интерфейс IUser, и интерфейс IAuthorizedUser. Мы можем присваивать ей объект, который имеет свойства из обоих интерфейсов.


Также можно использовать объединение интерфейсов для определения типа переменной в функции или методе:

1
2
3
4
5
function printUser(user: IUser & IAuthorizedUser) {
  console.log(user.name, user.age, user.username, user.password);
}

printUser(user);


В этом примере функция printUser принимает аргумент user, который должен реализовывать интерфейсы IUser и IAuthorizedUser.