首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传播getElementsByClassName或querySelectorAll会在TypeScript中产生错误

传播getElementsByClassName或querySelectorAll会在TypeScript中产生错误
EN

Stack Overflow用户
提问于 2019-07-27 15:39:44
回答 1查看 229关注 0票数 1

我使用以下代码将DOM节点列表转换为数组:

代码语言:javascript
运行
复制
const elements = [...document.getElementsByClassName(selector)];

但在使用TypeScript时,我得到的错误信息如下:Type 'HTMLCollectionOf<Element>' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.

我不知道在这种情况下我该怎么办。我试着像这样输入:

代码语言:javascript
运行
复制
const elements: HTMLElement[] = [...document.getElementsByClassName(selector)];

但它不起作用。

这是我的TypeScript配置文件(tsconfig.json):

代码语言:javascript
运行
复制
{
    "compilerOptions": {
        "target": "es5",
        "module": "umd",
        "sourceMap": true,
        "outDir": "dist",
        "strict": true,
        "esModuleInterop": true,
        "downlevelIteration": true
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-27 15:50:20

问题是,默认情况下,Typescript将默认使用.slice。

您应该添加标志--downlevelIteration,以使其适用于所有迭代器,包括html集合。

https://www.typescriptlang.org/docs/handbook/compiler-options.html

您应该将dom.iterable作为库才能使其工作。您当前没有指定lib,因此根据您的目标使用默认值,这就是它不起作用的原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57230148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档