首页 > 解决方案 > 输入'| 从数组对象中使用 FIND 时,undefined' 不可分配给类型 ''

问题描述

我试图从一个数组中找到一个元素并将其分配给另一个数组对象。

但它的说法

输入'ClosureSummary | undefined' 不可分配给类型 'ClosureSummary'

var dt = $('#tbl_summary').DataTable();
let ids:string[]=[];
dt.rows({ page: 'current' }).nodes().each(function(item,index){
  ids.push(item.id)

});
console.info(ids);
this.liveBoundSummary.forEach(element=>{
  let pcode:string=element.ProjectCode;
  if(ids.includes(pcode)){
    let csItem:any;
    element=this.clSummary.find(x=>x.ProjectCode==pcode);

  }
});

在这里,当我尝试将从 clSummary 数组中找到的值分配给liveBoundSummary 元素时,它会显示未定义的错误。

clSummary 和 liveBoundSummary 都属于同一类型 ClosureSummary[]

如何解决

标签: angulartypescript

解决方案


我可以使用非空断言运算符 (!)来修复它,所以我与那些面临同样问题的人分享相同的内容

所以在分配时我是这样的

element=this.clSummary.find(x=>x.ProjectCode==pcode)!;

哪个解决了这个问题


推荐阅读