我有一个数组rowSelected
,其中包含two
个元素。两个elements
的值TaskType
如下:
第一个元素具有TaskType: First
第二个元素有TaskType: Second
现在,如果任何元素具有TaskType: First
,那么我想将布尔变量this.myflag
设置为true
我正在使用Array.find
,如下所示:
const rowSelected = this.selection.selected;
if (rowSelected.find(x => x.TaskType.includes('ABC'))) {
this.myflag = true;
}
上面的代码给出了错误Property 'TaskType' does not exist on type 'TInterface'.
但是,当我执行rowSelected.find(x => console.log(x.TaskType))
时,我可以打印type
值
console.log(rowSelected)
正在返回
0: {hostName: "ABC.COM",TaskType: "First", …}
length: 1
__proto__: Array(0)
TInterface
如下所示:
export interface TInterface {
objectId: string;
hostName: string;
}
我不确定为什么会抱怨TInterface
,因为它与rowSelected
根本无关
答案 0 :(得分:0)
我认为您需要使用instanceof
而不是.type
或typeof
。
myflag = false
class First {
name: string
}
const first: First = new First(name: "first")
class Second {
name: string
}
const second: Second = new Second(name: "second")
let rowSelected = [
first,
second
]
rowSelected.forEach(x => {
if( x instanceof First ) {
myflag = true;
}
})
console.log(myflag)