javascript - 将样式应用于 TypeScript 节点元素

标签 javascript html typescript

我目前正在学习 TypeScript,但我不知道如何正确解决这个问题。我想对作为样式函数参数给出的 HTMLElement 进行样式设置,如下所示:

function styleElement(unstyled: HTMLElement) {
  const styled = unstyled.cloneNode(); // styleElement should be a pure function
  styled.style = { opacity: 0 }; // TypeScript says: Property 'style' does not exist on type 'Node'.

  return styled;
}

我已经检查了“Node”接口(interface)声明,并且样式属性丢失。据我所知,W3C 规范中描述了 Node 没有任何样式属性。但是我该如何解决这个限制的问题呢?

然而,覆盖“HTMLElement”上的样式属性会触发只读错误,这也很奇怪。

谢谢!

最佳答案

您可以转换:

function styleElement(unstyled: HTMLElement) {
  const styled = unstyled.cloneNode() <strong>as HTMLElement</strong>;
  styled.style.opacity = 0 // Now works properly.
  // You can't reassign HTMLElement#style, that won't work.

  return styled;
}

关于javascript - 将样式应用于 TypeScript 节点元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45029685/

相关文章:

jquery - 本地存储还是其他?

javascript - 如何在 Angular 中监听多个表单字段的变化?

typescript - VSCode 中的可选链运算符支持

Javascript 追加子嵌套

javascript - 单击按钮增加计数,同时减少另一个计数,反之亦然,无需重置为默认分数

php - 将参数传递给 HTML 中的表单操作

reactjs - 我怎么能告诉 typescript Prop 来自 react 克隆元素?

javascript - 使用 JavaScript 获取/附加属性(无 jQuery)

javascript - 如果某个键的值可能为空,则解构对象

html - 使用 materializecss 将图像与相应的表对齐