Javascript 数组上不存在Angular2查找

Javascript 数组上不存在Angular2查找,javascript,angular,ecmascript-5,typescript2.0,Javascript,Angular,Ecmascript 5,Typescript2.0,我有一个使用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)); var-assignedds:Array=this.As

我有一个使用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));
var-assignedds:Array=this.AssignedUsers.map(u=>u.id);
var users=this.AllUsers.filter(all=>all.id!=assignedIds.find(id=>id==all.id));
我在find方法上遇到一个错误:

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

我在几个阵列上都遇到了这个错误——不仅仅是这个阵列。一对是数字[],一个是字符串[],一个是自定义对象

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

我需要一些打字吗?

find()
在ES5中不存在,因此您会收到错误。您可以通过一个(如评论中所述)解决这个问题

但是,实际上,您只需执行以下操作:

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

您需要polyfill(请参阅),就像您在仅支持ES5的环境中使用es6功能(如Array.find)时一样,我是否需要制作polyfill?我认为Angular2有一个解决方案,不需要定制代码。