在angular中使用[...map.values()]编译不过解决办法
处理一个二维数组的时候,要修改里面某一个值,要循环查找到这项再去改值,由于比较懒不想写循环,想到用es6的map,直接通过key获取目标项,用set方法改值后再用[...map.values()]把map转成我要的数组就可以了。
然鹅这么写了后编译报错: error TS2568: Type 'IterableIterator<any>' is not an array type. Use compiler option '--downlevelIteration' to allow iterating of iterators.
竟然不支持还要配置啊,查找文档了解到TypeScript 2.3 在 ES3 和 ES5 为编译目标时由--downlevelIteration
编译选项增加了完整的对生成器和迭代器协议的支持。
【https://www.css88.com/doc/typescript/doc/release-notes/TypeScript%202.3.html】
修改tsconfig.json就好了:
1 { 2 "compilerOptions": { 3 "target": "es5", 4 "downlevelIteration": true, 5 "lib": [ 6 "dom", 7 "es5", 8 "es2015.collection", 9 "es2015.iterable" 10 ] 11 } 12 }