我在使用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;
});
Run Code Online (Sandbox Code Playgroud)
我的所有日志都显示为false,这是控制台的样子:
尽管明确只有3种类型是可能的,但它们都没有匹配.您还可以看到对象本身的类型名称为Goal,因此我不明白为什么它与目标的instanceof不匹配.
有任何想法吗?