Закрытие не понимает, что вы создаете экземпляр экземпляра MyCustomElement из document.createElement
, потому что оно не понимает значения customElements.define
* для своей внутренней системы типов, когда вы создаете HTMLElement с именем тега "my-custom-element".
То, что вы, вероятно, захотите сделать, приведёт результат функции createElement
(HTMLElement
) к MyCustomElement
:
/** @type {MyCustomElement} */
const myCustomElement = /** @type {MyCustomElement} */ (document.createElement('my-custom-element'));
*: Насколько я знаю; нет никаких доказательств того, что они намерены.