かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

TypeScript スプレッド構文で配列に変換しようとしたらエラーになった

TypeScript で [...document.querySelectorAll('meta')] こんな感じにスプレッド構文で NodeList を配列に変換しようとしたらエラーが出てしまいました。

Type 'NodeListOf<HTMLMetaElement>' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators.

₍ᐢ •̥ ̫ •̥ ᐢ₎‪ なんもわからん

tsconfig の compilerOptions の target が es5 の時は downlevelIteration オプションと dom.iterable が必要

{
  "compilerOptions": {
    "target": "es5",
    "downlevelIteration": true, // 追加
    "lib": [
      "dom",
      "dom.iterable",  // 追加
      "esnext",
    ],
   // …
  }
}  

target: es6 の時は lib に dom.iterable だけあれば OK っぽい。

₍ ᐢ. ̫ .ᐢ ₎ 俺 たち は雰囲気で TS を使っている…


[参考]

まだ積んでる…