我想删除名称为 属性 的重复对象,方法是在 rxjs 中没有重载匹配此调用
I want to remove duplicate objects by name property by I am getting No overload matches this call in rxjs
allEmployees$ = this.http.get<IEmployees[]>('../../assets/employees').pipe(
map(allEmployees =>
allEmployees.map(Employee =>
<IEmployees>({
id: Employee.id,
name: Employee.name,
email: Employee.email,
gender: Employee.gender,
productid: Employee.productid,
productName: 'N/A',
})
)),
switchMap(data => data.reduce((acc, curr) => {
const exists = acc.find(v => v['name'] === curr['name']);
return exists ? acc : acc.concat(curr);
}, []))
);
更多信息请看图片:
看起来 Typescript 编译器在推断 reduce
的种子参数中的数组类型时遇到了问题。尝试将其转换为 IEmployees[]
allEmployees$ = this.http.get<IEmployees[]>('../../assets/employees').pipe(
map(allEmployees =>
allEmployees.map(Employee =>
<IEmployees>({
id: Employee.id,
name: Employee.name,
email: Employee.email,
gender: Employee.gender,
productid: Employee.productid,
productName: 'N/A',
})
)),
switchMap(data => data.reduce((acc, curr) => {
const exists = acc.find(v => v['name'] === curr['name']);
return exists ? acc : acc.concat(curr);
}, []))
);
更多信息请看图片:
看起来 Typescript 编译器在推断 reduce
的种子参数中的数组类型时遇到了问题。尝试将其转换为 IEmployees[]