data.technologies
是一个数组,我想获取该数组的输出。
data.technologies
的输出如下所示:
this.profileService.getEntities().subscribe(data => {
for (const technology of data.technologies) {
console.log(technology);
}
});
getEntities()
的类型为Observable<IprofileData>
。
export interface IprofileData {
technologies: object;
}
TypeScript给我错误:
TS2488:类型“ object”必须具有返回迭代器的“ Symbol.iterator”方法。
我在做什么错了?
答案 0 :(得分:4)
运行时结构是正确的,它是一个数组,但是类型(根据您的评论)说它只是一个对象。对象没有迭代器协议,数组有迭代器。
应满足需要的示例类型:
type Data {
...// some other props
technologies: string[] // change string into any type you have there
}
答案 1 :(得分:3)
针对未来的Google员工:
如果您忘记使函数输入对象化,这也是返回的错误消息。
示例:
setCurrRowData(...currRowData, sort_order: num);
修复:
setCurrRowData( { ...currRowData, sort_order: num } );
答案 2 :(得分:1)
data.technologies
是一个函数(您提到它“返回”了数组)吗?如果是这样,您只需要这样调用即可:
this.profileService.getEntities().subscribe(data => {
for (const technology of data.technologies()) {
console.log(technology);
}
});