typescript - 类型 'HTMLCollectionOf<HTMLCanvasElement>' 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法

标签 typescript iterator iteration for-of-loop

我正在构建一个数组const myCanvas = document.getElementsByTagName('canvas')它实际上是有效的。它返回给我这样的东西:

images: [
  0: canvas,
  1: canvas,
  2: canvas
]
这是一个 TypeScript 项目,我想迭代这个数组并转换每个图像以记录它。
像这样:
for (const image of myCanvas) {
  console.log(canvas.toDataURL());
}
(我没有使用 foreach 因为它不适用于 HTMLCollectionOf<HTMLCanvasElement> 类型)
我需要迭代 HTMLCollection那个getElementsByTagName正在返回我。输出是:
Type 'HTMLCollectionOf<HTMLCanvasElement>' must have a '[Symbol.iterator]()' method that returns an iterator
error

最佳答案

为了以这种方式迭代,您需要设置 compilerOptions像这样:

"compilerOptions": {
        // ...
        "target": "ES6",
        "lib": [
            "DOM",
            "DOM.Iterable",
            "ES6"
        ]
        // ...
    }

关于typescript - 类型 'HTMLCollectionOf<HTMLCanvasElement>' 必须有一个返回迭代器的 '[Symbol.iterator]()' 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57621104/

相关文章:

Java烦人的迭代器不会返回链表中的元素

c++ - 为什么 reverse_iterator 双重定义其嵌套类型?

python - 如何在 Python 中迭代所有单词直到字母表的排列?

C:None-Recursive函数变为递归函数

c# - 对同一类型的多个对象进行大量操作

使用解构的剩余参数进行 Typescript 函数重载类型推断

typescript :数字的函数重载决议 |数组缓冲区

interface - 如何转换为对象可能实现的接口(interface)?

typescript - 在 Typescript 中导出数组的类型

python - 取消注释 `if False: yield` 更改 `__iter__` 行为