我正在創建一個處理數據庫中的對象的函數。我有兩個不同的數據結構,其中相同的屬性具有不同的名稱。我無法改變,所以我必須在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;
這兩行標記爲錯誤(「屬性在類型上不存在」),因爲兩種類型都不具有這兩個屬性。
那麼,什麼是正確的打字方式來做到這一點?