javascript - 当我尝试将 typescript 代码编译为javascript时,得到**类型 'NodeListOf<Element>'不是数组类型或字符串类型**

标签 javascript html typescript

当我尝试将 typescript 代码编译为 JavaScript 时,得到类型“NodeListOf”不是数组类型或字符串类型

if (query.length) {                                              
  var regex = new RegExp("(" + query + ")", "gm"); 
  var li = document.querySelectorAll("#id li"); //error                 
    for (var Element of li){                                   
      Element.innerHTML = Element.innerHTML.replace(regex, '<span class="classname">$1</span>'); 
    }
  }
}

最佳答案

下面的代码可以正常编译,并且我已经添加了内联注释。

let query = '';
if (query.length) {
    var pattern = new RegExp("(" + query + ")", "gim");
    var li: NodeListOf<Element> = document.querySelectorAll("#test li");
    // ES5 does not allow TS iteration of NodeListOf<Element> nor use of Array.from 
    // so it is necessary to loop over it manually.
    // Note that Element is an existing type which caused a conflict with "(var Element of list)".
    // It was necessary to rename Element to element.
    for (let i = 0; i < li.length; i++) {
        let element = li[i];
        element.innerHTML = element.innerHTML.replace(pattern, '<span class="target">$1</span>');
    }
}

关于javascript - 当我尝试将 typescript 代码编译为javascript时,得到**类型 'NodeListOf<Element>'不是数组类型或字符串类型**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42383285/

相关文章:

javascript - 如果是字母字符串,则将 int 解析为 0 文本

javascript - 一个cookie代码,使以下

jquery - 使用 "list-item"使文本标题在单词和样式中分开,并使用 "div"父级自动拉伸(stretch)

iphone - 在 iPhone 中具有相对位置的搜索按钮

javascript - gulp-nodemon 监视 typescript 文件

javascript - jQuery Tablesorter 不排序列

javascript - 如何从特定选定行的事件发送者数据中获取模型数据?

javascript - 通过原型(prototype)javascript更改类所有元素的样式

javascript - 有没有办法为 Javascript/Typescript 模块自动声明外部导出?

node.js - ts-node 无法导入类型声明文件