Javascript 财产';id';不存在于类型';节点';在cloneNode之后的普通JS中
我有一个纯JS函数,它基于一块“模板”HTML向页面添加消息 VS code正在抱怨Javascript 财产';id';不存在于类型';节点';在cloneNode之后的普通JS中,javascript,typescript,dom,visual-studio-code,clonenode,Javascript,Typescript,Dom,Visual Studio Code,Clonenode,我有一个纯JS函数,它基于一块“模板”HTML向页面添加消息 VS code正在抱怨clone.id和clone.classList,因为节点不能具有这些属性 现在,我看到的每一个关于克隆像这样的HTML块的答案和教程基本上都说要做我正在做的事情 我还可以看到这是一个Typescript错误,尽管据我所知,这也会增强VS代码JS检查的能力,所以目前我假设这是一个有效的错误(?) 一个节点没有这样的ID是有道理的,但是当我这样做时,设置ID并向这个节点的外部元素添加类的正确方法是什么?再一次,所有
clone.id
和clone.classList
,因为节点不能具有这些属性
现在,我看到的每一个关于克隆像这样的HTML块的答案和教程基本上都说要做我正在做的事情
我还可以看到这是一个Typescript错误,尽管据我所知,这也会增强VS代码JS检查的能力,所以目前我假设这是一个有效的错误(?)
一个节点没有这样的ID是有道理的,但是当我这样做时,设置ID并向这个节点的外部元素添加类的正确方法是什么?再一次,所有的谷歌搜索都会让我找到和我现在做的完全一样的例子 您可以通过使用JSDOC指定它的类型来修复它,例如:
/**@type{HTMLElement}*/
const clone=elementToCopy.cloneNode(true);
更好的方法是instanceof
:
const clone=elementToCpoy.cloneNode(true);
if(HtmleElement的克隆实例){
...
}
您可以通过使用JSDOC指定它的类型来修复它,例如:
/**@type{HTMLElement}*/
const clone=elementToCopy.cloneNode(true);
更好的方法是instanceof
:
const clone=elementToCpoy.cloneNode(true);
if(HtmleElement的克隆实例){
...
}
我假设您正在克隆HTMLElement(派生自元素,从节点驱动)
节点没有id
属性,但是HTMLElement
(还有元素
)有
您只需告诉编译器克隆的节点比节点
更具体。例如
const clone = elementToCopy.cloneNode(true) as HTMLElement;
如果你真的想安全,你可以明确地检查它。例如:
const clone = elementToCopy.cloneNode(true)
if (clone instanceof HTMLElement) {
clone.id = `js_message_alert_${msg_ct}`
...
}
取决于您。我假设您正在克隆一个HTMLElement(一个派生自元素的元素,它从节点驱动) 节点没有
id
属性,但是HTMLElement
(还有元素
)有
您只需告诉编译器克隆的节点比节点
更具体。例如
const clone = elementToCopy.cloneNode(true) as HTMLElement;
如果你真的想安全,你可以明确地检查它。例如:
const clone = elementToCopy.cloneNode(true)
if (clone instanceof HTMLElement) {
clone.id = `js_message_alert_${msg_ct}`
...
}
取决于你。如果这是一个TypeScript文件,但它是一个普通的JavaScript文件,哪一个会起作用。哦,是的…ups…被弄糊涂了,现在更新了我的答案哪一个会起作用,如果这是一个TypeScript文件,但它是一个普通的JavaScript文件。哦,是的…ups…被弄糊涂了,现在更新了我的答案,这本质上是一个TypeScript错误,因为
cloneNode
返回一个节点,正如您所怀疑的,该节点没有id
或classList
属性。在TypeScript中,您可以在cloneNode(true)
之后加上作为HTMLElement
,并将其终止。这本质上是一个TypeScript错误,因为cloneNode
返回一个节点,正如您所怀疑的,该节点没有id
或类列表
属性。在TypeScript中,您可以在cloneNode(true)
之后加上作为HTMLElement
,并称之为一天。不过这是针对TS文件的,不是吗?我无法在纯JS文件中执行此操作….,因为HTMLElement
无法工作。他没有使用TypeScriptOK,具体检查有效,谢谢!:)这是一个TS文件,不是吗?我无法在纯JS文件中执行此操作….,因为HTMLElement
无法工作。他没有使用TypeScriptOK,具体检查有效,谢谢!:)