angular - 类型 'HTML Collection' 必须有一个 '[Symbol.iterator]()' 方法返回指令中的迭代器

标签 angular iterator directive htmlcollection

我在指令中有一个映射显示错误代码 TS2488 Type 'HTML Collection' must have a '[Symbol.iterator]()' method that returns an iterator

我的 map :

map(
  ([headRow, bodyRows]: [HTMLTableRowElement, HTMLCollectionOf<HTMLTableRowElement>]) => [
    [...headRow.children].map(headerCell => headerCell.textContent), // First issue
    [...bodyRows].map(row => [...row.children]) // Second issue
  ]
),

如何最好地处理这个问题?对我有什么建议吗?

最佳答案

HTMLCollection 不可迭代,但您可以通过在 HTML 元素上使用“any”来让它忽略它。

          ([headRow, bodyRows]: [
            HTMLTableRowElement,
            HTMLCollectionOf<HTMLTableRowElement>
          ]) => [
            [...(<any>headRow.children)].map(
              (headerCell) => headerCell.textContent
            ),
            [...(<any>bodyRows)].map((row) => [...row.children])```

关于angular - 类型 'HTML Collection' 必须有一个 '[Symbol.iterator]()' 方法返回指令中的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61075183/

相关文章:

unit-testing - 如何模拟 angular2 中的 activatedRoute 父路由以进行测试?

c++ - 向后迭代 QList

javascript - 无法正确使用元素指令

C++ 2D 矩阵迭代器与嵌套 for 循环的效率比较

c++ - 保理技术找到类似的方法?

javascript - AngularJS,使用复选框更改模型值

Angularjs:ng 重复和指令

javascript - 如何在 HTML 中获取输入类型 Date 并在 angular7 component.ts 文件中使用?

css - 如何设置 mat-option 文本的样式以在悬停在每个 mat-option 文本上时在 mat-select 面板外获取文本

angular - 是否可以在没有 SauceLabs 的情况下将 Protractor 与 Github/Travis CI 一起使用