在 tsconfig.json
您可以定义额外的库,为您提供 HTML 或 DOM“库”的类型(?我不知道正确的术语)。
我不明白为什么dom
和 dom.iterable
是分开的。它们是在不同的 ecma 模块/版本中定义的吗?我可以安全地使用它们吗?
最佳答案
我怀疑这是因为迭代(可迭代和迭代器)直到 ES2015 才被添加到 JavaScript 中,在 TypeScript 成熟之后很久。当 ES2015 发布时,许多浏览器中的 JavaScript 引擎(还)不支持迭代,当然,当时 Internet Explorer 仍然是……东西……永远不会获得新功能。所以一些项目必须针对没有迭代的环境,所以库是分开的。
即使在 2022 年,IE 在企业和政府设施中仍然存在(尽管幸运的是,这种情况终于发生了变化),有些人不得不将他们的应用程序和页面定位到这些环境,所以他们不想使用 dom.iterable
.
¹ ES2015 是该规范的最后一个版本,其中包含尚未在该领域实现的重要功能。这些天,the process TC39 遵循的通常不会在规范中实现功能,直到(理想情况下)在该领域有几个功能交付实现。相反,该提案一直停留在第 3 阶段,直到发生这种情况,然后在 TC39 session 上以协商一致意见移至第 4 阶段,并被添加到 editor's draft ,因此在下一个六月的下一个快照规范中。
关于javascript - 为什么 dom 和 dom.iterable 是分开的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71510368/