我遇到了使用instanceof操作符的問題,它似乎不起作用。這裏是我的代碼的一部分:TypeScript instanceof不起作用
const results = _.map(items, function(item: Goal|Note|Task, index: number) {
let result = {};
if (item instanceof Goal) {
result = { id: index, title: item.name };
} else if (item instanceof Note) {
result = { id: index, title: item.content.text };
} else if (item instanceof Task) {
result = { id: index, title: item.name };
}
console.log(item);
console.log(item instanceof Goal);
console.log(item instanceof Note);
console.log(item instanceof Task);
return result;
});
我所有的日誌說假的,這裏是控制檯的樣子:,
他們沒有匹配儘管是明確的,只有3種類型是可能的。您也可以使用目標類型名稱來查看對象本身,所以我不明白它爲什麼與目標instanceof不匹配。
任何想法?
你是如何產生'items'?他們是通過構造函數創建的嗎?如果不是,它們將不會是給定類的實例。 –
你有沒有複製對象?通過JSON.parse或Object.assign? – Wazner
他們是來自API/http調用的響應。必須通過爲什麼他們的typeofs總是對象而不是特定的類型? – AnimaSola