我有一个使用 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));
我在查找方法时遇到错误:
Property 'find' does not exist on type 'string[]'.
我在几个数组上都遇到了这个错误——不仅仅是这个。一对是 number[],一个是 string[],还有一个是自定义对象。
如果我编译成 es6,它可以工作,但我需要以 es5 为目标。
我需要打字吗?
最佳答案
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));
关于javascript - Array 上不存在 Angular2 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050968/