2016-10-14 3 views
0

typescript 2.0.4를 사용하는 angular2 프로젝트 (2.0.0)가 있습니다.배열에 Angular2 찾기가 없습니다.

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

내가 찾기 방법에 오류가 받고 있어요 :

는이 코드를

재산권 '찾기'유형에 존재하지 않는 '문자열 []'.

나는이 오류뿐만 아니라 여러 배열에서이 오류가 발생합니다. 한 쌍은 숫자 []이고, 하나는 문자열 []이고, 하나는 사용자 정의 객체입니다.

es6으로 컴파일하면 작동하지만 es5를 대상으로해야합니다.

타이핑이 필요합니까?

+0

당신은 polyfill 필요 (http://stackoverflow.com/questions/31455805/find-object-in-array-using ([여기]를 참조 (예 : -typescript)), 언제든지 es5 만 지원하는 환경에서 Array.find와 같은 es6 기능을 사용하려고합니다. – drewmoore

+0

polyfill을 작성해야합니까? Angular2에는 맞춤 코드가 필요하지 않은 해결책이 있다고 생각했습니다. –

답변

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));