类型“object”必须有一个返回迭代器的“Symbol.iterator”方法

Rez*_*eza 7 typescript angular

data.technologies 是一个数组,我想获得该数组的输出。

这是输出的data.technologies样子:

在此处输入图片说明

this.profileService.getEntities().subscribe(data => {
  for (const technology of data.technologies) {
    console.log(technology);
  }
});
Run Code Online (Sandbox Code Playgroud)

的类型getEntities()Observable<IprofileData>

export interface IprofileData {  
  technologies: object;
}
Run Code Online (Sandbox Code Playgroud)

TypeScript 给了我错误:

TS2488:类型“object”必须有一个返回迭代器的“Symbol.iterator”方法。

我究竟做错了什么?

css*_*hus 17

对于未来的谷歌员工:

如果您忘记将函数输入对象化,这也是返回的错误消息。

例子:

setCurrRowData(...currRowData, sort_order: num);
Run Code Online (Sandbox Code Playgroud)

使固定:

setCurrRowData( { ...currRowData, sort_order: num } );
//              ^                                 ^
Run Code Online (Sandbox Code Playgroud)


Mac*_*ora 6

运行时结构是正确的,它是一个数组,但类型说(根据您的评论)它只是一个对象。对象没有迭代器协议,数组有。

应满足需要的示例类型:

type Data {
  ...// some other props
  technologies: string[] // change string into any type you have there
}
Run Code Online (Sandbox Code Playgroud)