for...of や展開構文(...)は、配列や文字列のように「反復可能(iterable)」なものにしか使えません。普通のオブジェクトに使うと出ます。
出るコード
const obj = { a: 1, b: 2 };
for (const item of obj) { // 素のオブジェクトはそのままでは反復できない
console.log(item);
}
エラーメッセージ
TypeError: obj is not iterable
直し方
Object.entries(obj) や Object.keys(obj) で配列に変換してから for...of を使うか、オブジェクト用の for...in を使います。
for (const key in obj) {
console.log(key, obj[key]);
}