微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CustomElementRegistry.whenDefined返回void而不是构造函数

如何解决CustomElementRegistry.whenDefined返回void而不是构造函数

假设已定义一个自定义元素,并使用CustomElements.whenDefined函数检查何时发生:

customElements.whenDefined("foo-bar").then(console.log)

customElements.define("foo-bar",class {});

根据自定义元素规范(https://html.spec.whatwg.org/multipage/custom-elements.html#dom-customelementregistry-whendefined)和MDN文档(https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/whenDefined),CustomElements.whenDefined将由CustomElement的构造方法解析。但是,在chrome(86)或firefox(82)中运行上述代码时,它会记录undefined。微软对此方法的类型定义(https://github.com/microsoft/TypeScript/blame/2d495b7f251511ba00bc0e3311de2090f92e79dd/lib/lib.dom.d.ts#L3513)也使用“ void”来解决

({customElements.get("foo-bar")确实可以正常工作并返回构造函数。)

有人知道为什么吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。