打字稿:类型不可分配给类型

Typescript : Type is not assignable to type

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

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

}

 

@DarBen,

数组方法,filter,returns 是从实例推断出的数组。这可能 return 一个空数组。在空数组上使用 pop() 时,您将得到 undefined,如 here.

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

如果您只是想在列表中查找待办事项,可以使用 find 方法,其作用与 filter 后跟 pop 相同,但 IMO 显示您正在寻找一个没有原始数组可能受到影响的歧义的项目。 Here is a complete example.