Я создаю функцию, которая обрабатывает объекты из базы данных. У меня есть две разные структуры данных, в которых одно и то же свойство имеет другое имя. Я не могу это изменить, поэтому мне приходится обрабатывать это в JavaScript.
У объектов есть другие отличия, но это не важно для этой функции.
Я хочу использовать одну и ту же функцию для двух разных типов объектов. Вот пример кода, демонстрирующий мою проблему:
interface TypeA {
itemName: string;
}
interface TypeB {
itemTitle: string;
}
function getItemName(item: TypeA | TypeB): string {
let name = '';
if (item.hasOwnProperty('itemName')) {
name = item.itemName;
} else {
name = item.itemTitle;
}
return name;
}
Конечно, этот код работает. Но IDE отмечает обе строки name = item.itemName;
и name = item.itemTitle;
как ошибки («Свойство не существует для типа»), потому что оба типа не имеют обоих свойств.
Итак, как это сделать с помощью машинописного текста?