问题描述
我有一个项目,其中包含一些Web组件类,并且我还有一个接收这些组件并将其注册到窗口中的函数。 例如:
/**
* @param {} ComponentClass - class that extends HTMLElement
* @param {string} displayName - tag name to be used in html
*/
function registerComponent(ComponentClass,displayName){
window.customElements.define(displayName,ComponentClass);
}
我的问题是:如何正确键入ComponentClass?有没有办法描述它是扩展HTMLElement的类?
解决方法
CustomElementConstructor
是您所追求的,例如
/**
* @param {CustomElementConstructor} ComponentClass - class that extends HTMLElement
* @param {string} displayName - tag name to be used in html
*/
function registerComponent(ComponentClass,displayName) {
window.customElements.define(displayName,ComponentClass);
}
class WCTest extends HTMLElement {}
registerComponent(WCTest,'wc-test');