在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 }

 

posted @ 2019-01-02 15:46  彩泉  阅读(3132)  评论(0编辑  收藏  举报