const a = []
const b = [{x: 1}]
const c = [...(a[0] || []), ...(b[0] || [])]
// Uncaught TypeError: undefined is not a function
これで undefined is not a function って言われる
遭遇したときはもっと複雑なコードで 関数実行してないのに 関数実行しようとしてるけど関数じゃないってエラーなので原因見つけるのに苦労しました
原因は b[0] が通常のオブジェクトなこと
配列とかイテラブルなオブジェクトじゃないとダメ
... に続くのが変数だとわかりやすくなります
const aa = a[0] || []
const bb = b[0] || []
const cc = [...aa, ...bb]
// Uncaught TypeError: bb is not iterable
式の場合は bb って名前が出せないのでエラーメッセージが違うみたい
だけど not a function じゃなくて not iterable って言ってほしい