Задача типизировать функцию, которая печатает имя человека, членов семьи или знаменитостей, переданных ей
Соответственно создайте три интерфейса, каждый из них должен иметь свойство name, сделайте интерфейс People и пусть от него расширяются другие интерфейсы Celebrity extends People, которые должны иметь это свойство.
Общая функция printName, которую мы создали, примет любой объект, который расширяет People <T extends People>. Другими словами, вы можете передать объект члена семьи, просто человека или объект знаменитости этой функции, и он напечатает свое имя без каких-либо претензий. Вы можете определить еще много интерфейсов, и до тех пор, пока у них есть свойство name, вы сможете использовать функцию printName без каких-либо проблем.
function printName(theInput){
console.log(`My name is ${theInput.name}`);
}
let serena = {
name: 'Serena Williams',
profession: 'Tennis Player'
}
printName(serena);
Код занятия: https://github.com/tel-ran-de/FE-24-m/tree/fe-08-03-typescript-generics Повторяем теорию https://habr.com/ru/post/455473 https://habr.com/ru/company/tinkoff/blog/588655 https://typescript-handbook.ru/docs/ts-4
Задача типизировать функцию, которая печатает имя человека, членов семьи или знаменитостей, переданных ей Соответственно создайте три интерфейса, каждый из них должен иметь свойство name, сделайте интерфейс People и пусть от него расширяются другие интерфейсы
Celebrity extends People
, которые должны иметь это свойство.Общая функция printName, которую мы создали, примет любой объект, который расширяет People
<T extends People>
. Другими словами, вы можете передать объект члена семьи, просто человека или объект знаменитости этой функции, и он напечатает свое имя без каких-либо претензий. Вы можете определить еще много интерфейсов, и до тех пор, пока у них есть свойство name, вы сможете использовать функцию printName без каких-либо проблем.