这基本上是重新开放 #2910 ,这是 @mhegazy 让我做的。
如今 TS 有 lib
编译器选项,允许用户根据目标选择性地包含或不包含哪些核心定义。
为针对现代 DOM 运行时的目标添加一个类似于 dom
和 dom.iterable
的新选项会很好。不确定如何命名这个选项,因为 W3C 已从发布转向“活的标准”模型。
例如,活的标准包括具有方法 after
、 before
、 remove
和 replaceWith
的接口 ChildNode
; 具有方法 prepend
和 append
的接口 ParentNode
。
这些方法已经在 Firefox 和 Chrome 中存在了很长时间,它们在 Edge (17035+) 中处于预览状态。
它们非常方便,没有理由开发人员不应该能够执行 "lib": "dom.living"
并使用它们来针对现代浏览器。
不幸的是,我不确定是否有一个列表列出了所有这些新功能...除了浏览整个标准之外:(
6条答案
按热度按时间pftdvrlh1#
我们已经在lib.d.ts中更加开放地接受这些声明。所以请随时向我们发送PR,添加新的接口。
您可以在https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md#contributing-libdts-fixes 找到更多关于贡献lib.d.ts修复的信息。
gg0vcinb2#
相关: microsoft/TypeScript-DOM-lib-generator#327
qojgxg4l3#
我的理解是,用于生成DOM库的基础是MS Edge的定义。
由于这些功能已经发布(参见
https://twitter.com/MSEdgeUpdates/status/1000421335229784064
),我们能否期待在下一个TS版本中看到它们?
我希望它们也能出现在2.9中,可惜它们没有:(
9vw9lbht4#
我们将直接从规范生成库。
8mmmxcuj5#
👍那也会解决这个问题!
tjjdgumg6#
我注意到TypeScript v3.1引入了许多新的DOM功能,包括(其中最常见的):
ChildNode#after()
ChildNode#before()
ChildNode#replaceWith()
ParentNode#append()
ParentNode#prepend()
发布说明指出,现在部分
lib.d.ts
可以通过 WHATWG DOM Spec 程序生成。🎊