我遇到了使用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