TypeScript 提供现代DOM的库

wbrvyc0a  于 4个月前  发布在  TypeScript
关注(0)|答案(6)|浏览(63)

这基本上是重新开放 #2910 ,这是 @mhegazy 让我做的。
如今 TS 有 lib 编译器选项,允许用户根据目标选择性地包含或不包含哪些核心定义。
为针对现代 DOM 运行时的目标添加一个类似于 domdom.iterable 的新选项会很好。不确定如何命名这个选项,因为 W3C 已从发布转向“活的标准”模型。
例如,活的标准包括具有方法 afterbeforeremovereplaceWith 的接口 ChildNode ; 具有方法 prependappend 的接口 ParentNode
这些方法已经在 Firefox 和 Chrome 中存在了很长时间,它们在 Edge (17035+) 中处于预览状态。
它们非常方便,没有理由开发人员不应该能够执行 "lib": "dom.living" 并使用它们来针对现代浏览器。
不幸的是,我不确定是否有一个列表列出了所有这些新功能...除了浏览整个标准之外:(

pftdvrlh

pftdvrlh1#

我们已经在lib.d.ts中更加开放地接受这些声明。所以请随时向我们发送PR,添加新的接口。
您可以在https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md#contributing-libdts-fixes 找到更多关于贡献lib.d.ts修复的信息。

qojgxg4l

qojgxg4l3#

我的理解是,用于生成DOM库的基础是MS Edge的定义。
由于这些功能已经发布(参见
https://twitter.com/MSEdgeUpdates/status/1000421335229784064
),我们能否期待在下一个TS版本中看到它们?
我希望它们也能出现在2.9中,可惜它们没有:(

9vw9lbht

9vw9lbht4#

我们将直接从规范生成库。

8mmmxcuj

8mmmxcuj5#

👍那也会解决这个问题!

tjjdgumg

tjjdgumg6#

我注意到TypeScript v3.1引入了许多新的DOM功能,包括(其中最常见的):

  • ChildNode#after()
  • ChildNode#before()
  • ChildNode#replaceWith()
  • ParentNode#append()
  • ParentNode#prepend()

发布说明指出,现在部分 lib.d.ts 可以通过 WHATWG DOM Spec 程序生成。🎊

相关问题