类型“IterableIterator”不是数组类型或字符串类型

Type ‘IterableIterator’ 不是数组类型或字符串类型

Type ‘IterableIterator’ is not an array type or string type

要解决“Type ‘IterableIterator’ is not an array or a string type”错误,请在您的文件
中将该
target属性设置为或启用以发出更符合要求的 JavaScript 代码进行迭代。es6tsconfig.jsondownlevelIteration

类型 iterableiterator 不是数组类型

下面是错误如何发生的两个示例。

索引.ts
function* generator(a: number, b: number, c: number): IterableIterator<number> { yield a; yield b; yield c; } // ⛔️ Error: Type 'IterableIterator<number>' is not an array type // or a string type. Use compiler option '--downlevelIteration' // to allow iterating of iterators.ts(2569) for (const num of generator(5, 10, 15)) { console.log(num); // 👉️ 5, 10, 15 } // ------------------------------------------------------------------- const regexp = RegExp('he*', 'g'); const str = 'hello hey hi'; const matches = str.matchAll(regexp); // ⛔️ Error: Type 'IterableIterator<RegExpMatchArray>' is not // an array type or a string type. Use compiler option // '--downlevelIteration' to allow iterating of iterators.ts(2569) for (const match of matches) { console.log(match); }

更新你的tsconfig.json

要解决该错误,请
tsconfig.json
target文件中将属性设置为es6

tsconfig.json文件
{ "compilerOptions": { "target": "es6", // ... your other options } }

target选项更改哪些 JavaScript 特性被降级,哪些保持不变

如果这不能解决错误,请尝试重新启动 IDE。VSCode 经常出现故障并需要重启。

如果您使用该String.matchAll方法但错误仍未解决,请添加
ES2020.String到您的lib数组中tsconfig.json

tsconfig.json文件
{ "compilerOptions": { "target": "es6", "lib": [ "ES2020.String", // ... your other libs ], // ... your other options } }

ES6 是一个不错的选择,因为现代浏览器支持所有 ES6 特性。

如果您需要支持较旧的环境,则可以使用该downlevelIteration
选项来解决错误。

tsconfig.json文件
{ "compilerOptions": { "target": "es5", "downlevelIteration": true, // ... your other options }, }

downlevelIteration

选项将您的 TypeScript 代码转换为旧版本的 JavaScript

这会使您的代码性能降低且更加冗长,但是,它能够在更旧的浏览器中运行。

ES6 添加了多个迭代原语,例如for...of循环、
数组展开 [...myArr1, ...myArr2]等。

如果您需要将这些迭代原语设置为targetes5则必须downlevelIteration在您的tsconfig.json文件中启用。

请注意,发出的 JavaScript 非常冗长且性能低于通过设置为保持迭代原语不变的target情况es6

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: