Vue3+Vite+TS环境中DOMTokenList.entries()类型报错求助
解决方案
1. 手动补充DOMTokenList类型声明
TypeScript的默认DOM类型定义里,DOMTokenList可能未包含entries()这类ES2017+新增的迭代器方法声明。你可以在项目的类型声明文件(比如env.d.ts或src/core/types/dom.d.ts)中添加扩展:
interface DOMTokenList { entries(): IterableIterator<[number, string]>; keys(): IterableIterator<number>; values(): IterableIterator<string>; [Symbol.iterator](): IterableIterator<string>; }
2. 换用更简洁的兼容写法
既然DOMTokenList本身是可迭代对象,完全可以直接遍历,不需要用entries()。修改扩展代码如下,直接绕开类型问题:
DOMTokenList.prototype.removeStartWith = function(prefix:string){ this.remove(...Array.from(this).filter(c => c.startsWith(prefix))) }
3. 更新DOM相关类型依赖
检查并更新@types/web包(它包含完整的现代DOM类型定义),旧版本可能缺失entries()的类型声明:
npm install @types/web --save-dev
内容的提问来源于stack exchange,提问作者RıdvanÖnal
相关产品推荐
相关产品推荐

