使用TS 5.1.3遍历Element.attributes遇NamedNodeMap迭代器错误求解决
解决TypeScript遍历Element.attributes时的迭代器报错问题
- 核心问题出在TypeScript配置缺少DOM迭代器特性的类型支持,或是目标编译版本过低。
- 检查
tsconfig.json的compilerOptions配置:- 确保
lib数组包含"DOM"和"ES2015"(或更高版本,比如ESNext),示例配置:{ "compilerOptions": { "lib": ["ES2015", "DOM"], "target": "ES2015" } }ES2015是迭代器特性的最低支持版本,DOM则提供了NamedNodeMap的迭代器类型声明。 - 确认
target字段不低于ES2015,低版本目标会禁用迭代器相关的语法和类型支持。
- 确保
- 若配置调整后仍报错,检查项目依赖中的
@types包是否存在版本冲突,比如旧版DOM类型定义,可尝试更新相关包或清理依赖缓存。 - 临时应急方案:直接把
NamedNodeMap转为数组再遍历,比如:// 转为数组后遍历 for (const attr of Array.from(element.attributes)) { // 处理属性逻辑 }
内容的提问来源于stack exchange,提问作者Matthieu Riegler
相关产品推荐
相关产品推荐

