【发布时间】:2020-03-11 22:37:39
【问题描述】:
我有一个项目,一年后我又回来了。类似于以下代码的东西曾经可以工作但不再工作:
interface HTMLElement {
attributeChangedCallback(attributeName: string, oldValue: string, newValue: string): void;
connectedCallback(): void;
disconnectedCallback(): void;
observedAttributes: string[];
}
export default class TestElement extends HTMLElement {
connectedCallback(): void {
super.connectedCallback();
}
}
我现在收到 Property 'connectedCallback' does not exist on type 'HTMLElement' 错误。这与这里的许多问题不同,人们需要更具体地确定使用哪种类型。我在这里扩展HTMLElement。 HTMLElement 的默认声明不包含任何自定义元素的内容,因此我有一段时间一直在使用界面来填写我一直在使用的内容。我现在还必须做些什么才能使其正常工作吗?
【问题讨论】:
-
是
Property 'connectedCallback' does not exist on type 'HTMLElement'tslint 错误,还是构建错误,还是? -
接口不能实例化,可以像
class TestElement implements HTMLElement一样实现。 -
@Yeheshuah 这是构建错误。
-
@ArtemBozhko 是的,我知道这一点,但问题是 HTMLElement 必须在被转译的 JavaScript 中扩展以创建自定义元素。我需要一种让 TypeScript 理解 HTMLElement 确实有 connectedCallback 的方法。
标签: typescript