angular - Kiểu 'object' phải có một phương thức 'Symbol.iterator' trả về một bộ lặp
data.technologies là một mảng và tôi muốn lấy kết quả của mảng đó.
Đây là cách mà kết quả của data.technologies trông như sau:
this.profileService.getEntities().subscribe(data => {
for (const technology of data.technologies) {
console.log(technology);
}
});
Kiểu của getEntities() là Observable<IprofileData>.
export interface IprofileData {
technologies: object;
}
TypeScript báo cho tôi lỗi:
TS2488: Kiểu 'object' phải có một phương thức 'Symbol.iterator' trả về một iterator.
Tôi đang làm gì sai?
Câu trả lời #1
Cho những người tìm kiếm trên Google trong tương lai:
Đây cũng là thông báo lỗi được trả về nếu bạn quên chuyển đổi các đầu vào của hàm thành đối tượng.
Ví dụ :
setCurrRowData(...currRowData, sort_order: num);
Sửa :
setCurrRowData( { ...currRowData, sort_order: num } );
// ^ ^
Câu trả lời #2
Cấu trúc thời gian chạy là đúng, nó là một mảng, nhưng kiểu dữ liệu nói (từ bình luận của bạn) rằng nó chỉ là một đối tượng. Đối tượng không có giao thức iterator, còn mảng thì có.
Loại ví dụ nên đáp ứng nhu cầu:
type Data {
...// some other props
technologies: string[] // change string into any type you have there
}
