Je crée une fonction qui gère les objets de la base de données. J'ai deux structures de données différentes où la même propriété a un nom différent. Je ne peux pas changer cela, donc je dois le gérer en JavaScript.
Les objets ont d'autres différences, mais ce n'est pas important pour cette fonction.
Je souhaite utiliser la même fonction pour deux types d'objets différents. Voici un exemple de code démontrant mon problème:Accès à différentes propriétés dans un type d'union de typescript
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;
}
Bien sûr, ce code s'exécute. Mais l'IDE marque à la fois les lignes name = item.itemName;
et name = item.itemTitle;
comme des erreurs ("La propriété n'existe pas sur le type"), car les deux types n'ont pas les deux propriétés. Alors, quelle est la bonne façon de faire cela?