【问题标题】:Angular2 find does not exist on ArrayArray上不存在Angular2 find
【发布时间】:2016-10-15 03:59:50
【问题描述】:

我有一个使用 typescript 2.0.4 的 angular2 项目 (2.0.0)。

我有这个代码:

var assignedIds: Array<string> = this.AssignedUsers.map(u => u.id);
var users = this.AllUsers.filter(all => all.id != assignedIds.find(id => id == all.id));

我在 find 方法上遇到错误:

类型“string[]”上不存在属性“find”。

我在几个数组上都收到了这个错误——不仅仅是这个。一对是 number[],一个是 string[],一个是自定义对象。

如果我编译到 es6,它可以工作,但我需要以 es5 为目标。

我需要打字吗?

【问题讨论】:

  • 你需要一个 polyfill(参见here),就像你想在只支持 es5 的环境中使用 es6 功能(如 Array.find)时所做的那样
  • 我需要做一个polyfill吗?我认为 Angular2 有一个不需要自定义代码的解决方案。

标签: javascript angular ecmascript-5 typescript2.0


【解决方案1】:

find() 在 ES5 中不存在,所以你得到了错误。您可以使用polyfill 解决这个问题(如评论中所述)。

但是,您实际上应该简单地编写代码:

var assignedIds: Array<string> = this.AssignedUsers.map(u => u.id);
var users = this.AllUsers.filter(all => assignedIds.some(id => id == all.id));

【讨论】:

    猜你喜欢
    • 2014-09-04
    • 2021-09-14
    • 2023-03-26
    • 2016-12-31
    • 1970-01-01
    • 2023-03-25
    • 2023-03-08
    • 1970-01-01
    • 2017-01-14
    相关资源
    最近更新 更多