微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迭代 Typescript Map

如何解决迭代 Typescript Map

你可以Map.prototype.forEach((value, key, map) => void, thisArg?) : void改用

像这样使用它:

myMap.forEach((value: boolean, key: string) => {
    console.log(key, value);
});

解决方法

我正在尝试迭代打字稿地图,但我不断收到错误,对于这样一个微不足道的问题,我还找不到任何解决方案。

我的代码是:

myMap : Map<string,boolean>;
for(let key of myMap.keys()) {
   console.log(key);
}

我得到错误:

类型 ‘IterableIteratorShim<[string,boolean]>’ 不是数组类型或字符串类型。

全栈跟踪:

 Error: Typescript found the following errors:
  /home/project/tmp/broccoli_type_script_compiler-input_base_path-q4GtzHgb.tmp/0/src/app/project/project-data.service.ts (21,20): Type 'IterableIteratorShim<[string,boolean]>' is not an array type or a string type.
    at BroccoliTypeScriptCompiler._doIncrementalBuild (/home/project/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:115:19)
    at BroccoliTypeScriptCompiler.build (/home/project/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:43:10)
    at /home/project/node_modules/broccoli-caching-writer/index.js:152:21
    at lib$rsvp$$internal$$tryCatch (/home/project/node_modules/rsvp/dist/rsvp.js:1036:16)
    at lib$rsvp$$internal$$invokeCallback (/home/project/node_modules/rsvp/dist/rsvp.js:1048:17)
    at lib$rsvp$$internal$$publish (/home/project/node_modules/rsvp/dist/rsvp.js:1019:11)
    at lib$rsvp$asap$$flush (/home/project/node_modules/rsvp/dist/rsvp.js:1198:9)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

我正在使用 angular-cli beta5 和 typescript 1.8.10,我的目标是 es5。有人遇到过这个问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。