【问题标题】:How to fix property does not exist on type 'Element' error in Typescript?如何修复 Typescript 中的“元素”类型错误不存在属性?
【发布时间】:2020-04-07 22:21:46
【问题描述】:

运行构建时出现错误。它说

TS2339:“元素”类型上不存在属性“主体”。

代码如下:

const testCode = document.createElementNS('http://example.com/x/x', 'testtestCode');
testCode.body = widgetBody; 

试图在 const 之后添加 'as Element' 或 instanceof,但这不起作用。有什么建议吗?

【问题讨论】:

  • Element 没有 body 属性,您要改用 testCode.innerHTML 吗?
  • 不,我有自定义属性,如何添加?

标签: javascript typescript


【解决方案1】:

在 cmets 中获得更多信息后,很明显您希望在自定义元素上使用自定义属性。你可以这样做:

interface MyCustomElement {
    body: string;
    model: string;
}

const testCode = document.createElementNS('http://example.com/x/x', 'testtestCode')
                 as Element & MyCustomElement;
testCode.body = widgetBody; 

将变量转换为 Element 和 MyCustomElement 可以让您访问 Element 类型的正常属性,同时还可以访问您的自定义属性。

【讨论】:

  • 不,我需要身体和模型才能使用。我需要同时使用哪种元素类型?
  • 好吧,它是什么元素类型?这似乎是您指定的自定义内容,因此可能需要自定义类型声明。
  • 是的,我有自定义属性。我将搜索添加自定义类型声明。我怎么能像 testCode.setAttribute('body', ..) 那样做。 ?
猜你喜欢
  • 2018-09-27
  • 2019-07-08
  • 1970-01-01
  • 2021-11-12
  • 2020-02-22
  • 2019-08-25
  • 2019-06-08
  • 2020-02-24
  • 2023-02-21
相关资源
最近更新 更多