function correlateData(peopleData: Person[], staff: Employee[]): EmployedPerson[] {
const defaults = { company: 'None', dept: 'None' };
return peopleData.map(p => ({ ...p, ...staff.find(e => e.id === p.id) || { ...defaults, id: p.id } }));
}
...staff.find(e => e.id === p.id)
이 부분이 이해가 안되었다.
전개 연산자(spread operator)는 연산자도 아니고, 따라서 값으로 평가도 되지 않는 것인데
마치 평가값에 체이닝하여 find 메소드를 호출하는 걸로 생각
찾아보니 전개 연산자는 연산 우선순위가 낮아
staff.find()가 호출되고 평가값에 다시 전개연산자가 계산된다