Ionic 4安卓构建报错:IterableIterator无法迭代,需开启--downlevelIteration
解决Ionic4构建安卓时TypeScript遍历entries()报错的问题
这个问题我之前开发Ionic项目时也碰到过,本质是TypeScript编译的兼容性配置问题,给你几个实用的解决办法:
修改TypeScript编译配置
打开项目根目录下的tsconfig.json文件,找到compilerOptions节点,添加"downlevelIteration": true配置项,修改后的配置示例如下:{ "compilerOptions": { // 保留原有其他配置... "downlevelIteration": true } }这个配置的作用是让TypeScript把迭代器的遍历语法(比如
for...of遍历entries()返回的迭代器)编译成兼容低版本JavaScript环境的代码,而安卓的WebView环境正好属于这类需要兼容的场景。改用数组遍历的替代写法
如果不想修改全局编译配置,也可以直接把迭代器转换成数组再遍历,代码调整为:for (let [index, p] of Array.from(this.cart.entries())) { // 你的原有业务逻辑代码 }Array.from()会把entries()返回的迭代器转换成数组,这样就符合TypeScript默认允许的数组/字符串类型遍历要求了。额外注意事项
修改完配置后,建议执行ionic build android --clean清除构建缓存再重新构建,避免旧的编译缓存导致配置不生效;如果使用VS Code这类编辑器,也可以重启一下编辑器让配置变更被正确识别。
内容的提问来源于stack exchange,提问作者pratik jaiswal
相关产品推荐
相关产品推荐

