Массив объектов отвечающий двум разным интерфейсам
Всем привет. Вопрос про тайпскрипт) Смотрите есть массив объектов. Отвечает двум интерфейсам. Дальше я хочу фильтровать по типу объекта и вызывать специфичные методы. Тайпскрипт ругается. Мол того может попасться в отфильтрованном массиве элемент без такого метода. Как здесь лучше поступить?
Ответы (1 шт):
Автор решения: Sergei Kirjanov
→ Ссылка
Встречал такую штуку:
function isFish(pet: Fish | Bird): pet is Fish {
return (<Fish>pet).swim !== undefined;
}
if (isFish(pet)) pet.swim();