首页 > 解决方案 > 打字稿:类型不可分配给类型

问题描述

我收到此 TypeScript 代码的以下错误:

getTollById(id: number): Toll {
  return this.toll
    .filter(toll => toll.id === id)
    .pop();

}

 

标签: angulartypescripttypesundefined

解决方案


@达本,

数组方法 ,filter返回从实例推断的数组。这可能会返回一个空数组。当pop()在一个空数组上使用时,你会undefined看到这里

此外,使用pop不会影响 TODO 列表。我不确定您是否认为 todos 数组会受到影响?第一个游乐场链接证明了这一点。

如果您只是想在列表中查找待办事项,则可以使用该方法,该方法与后跟find的作用相同,但 IMO 表明您正在寻找一个项目,而不会模糊原始数组可能会受到影响。这是一个完整的例子filterpop


推荐阅读