将节点转换,转换或标记为JavaScript中的/作为元素

时间:2019-03-06 10:12:06

标签: javascript types phpstorm webstorm

我有以下运行良好的示例JS。.

const mainContainer = document.getElementById('main-container');
const subContainers = mainContainer.querySelectorAll('.sub-container');

for (let i = 0; i < subContainers.length; i++) {

    const subContainer = subContainers[i];
    const subContainerStyle = window.getComputedStyle(subContainer);
    const subContainerPadding = subContainerStyle.getPropertyValue('padding');

    console.log(subContainerPadding);
}

我的IDE(在macOS 10.14.3上为PhpStorm 2018.2.6)抱怨说window.getComputedStyle()需要一个Element对象

这是因为subContainer是一个传入的节点,因为mainContainer.querySelectorAll()返回一个NodeList,其中包含更多抽象的Node对象,而Element只是一种类型

  • 有什么方法可以从nodeTypeNode.ELEMENT_NODE的节点获取元素?
  • 有没有一种方法可以将Node变量强制转换为Element类型?
  • 是否可以将变量标记为元素类型?

更新

正如@lena在评论中指出的那样,将PhpStorm更新到最新版本(2018.3.4)删除了警告

正如@sergio在评论中指出的,querySelectorAll()实际上返回一个NodeListOf<Element>

我想这个问题仍然代表着更普遍的情况!

0 个答案:

没有答案