gpt4 book ai didi

javascript - Typescript 中的类型 'content' 上不存在属性 'HTMLElement'

转载 作者:行者123 更新时间:2023-12-04 14:13:26 31 4
gpt4 key购买 nike

尝试获取元标记的内容时出现错误:

document.getElementById('mymetatag').content

在 Javascript 中是有效的,但 typescript 说
Property 'content' does not exist on type 'HTMLElement'

那么如何扩展 HTMLElement 类型接口(interface)来支持 content 属性呢?

最佳答案

TypeScript 不知道什么样的元素具有这个特定的 ID。它一开始就无法相信元素的存在!

您需要引入另一项检查以验证您的假设:

const element: HTMLElement | null = document.getElementById('mymetatag');

if (element instanceof HTMLMetaElement) {
element.content;
}

更新

您还可以使用断言签名。
function assert(condition: boolean, message: string): asserts condition {
if (!condition) {
throw new Error(message);
}
}

那么你的解决方案就变成了:
const element: HTMLElement | null = document.getElementById('mymetatag');

assert(element instanceof HTMLMetaElement, "A <meta> element of id 'mymetatag' needs to exist in the DOM.");

element.content; // string

关于javascript - Typescript 中的类型 'content' 上不存在属性 'HTMLElement',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62450899/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com