データベースからオブジェクトを処理する関数を作成しています。私は同じプロパティが異なる名前を持つ2つの異なるデータ構造を持っています。私はそれを変更することはできませんので、私はそれをJavaScriptで処理する必要があります。
オブジェクトには相違点がありますが、この機能には重要ではありません。
2つの異なるタイプのオブジェクトに対して同じ機能を使用したいと考えています。ここに私の問題を示すサンプルコードがあります:タイプコピーユニオンタイプの異なるプロパティへのアクセス
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;
の両方の行をエラーとしてマークします(「プロパティは型に存在しません」)。
これを行うには適切なタイスクリプトの方法は何ですか?