相关疑难解决方法(0)

打字稿错误:Map.values()赋予IterableIterator不可迭代

当我尝试遍历返回的值Map.values()(在Map的类型为<number,Foo>)时,Typescript给我这个错误:

错误TS2495:类型'IterableIterator <Foo>'不是数组类型或字符串类型。

根据ES6,文档 Map.values()应返回一个IterableIterableIterator,我应该能够在for-of循环中使用它。

这在node以下方面可以正常工作:

var data = [
  {id: 0},
  {id: 1},
  {id: 3}
];
var m = new Map(data.map(n => [n.id,n]));
for(var i of m.values()) { console.log(i) }
Run Code Online (Sandbox Code Playgroud)

这给出了来自的错误tsc

interface Foo {
  id: number;
}
var data: Foo[] = [
  {id: 0},
  {id: 1},
  {id: 2}
];
var m = new Map<number,Foo>(data.map(n => <[number,Foo]>[n.id,n]));
for(var i of m.values()) { console.log(i) }
Run Code Online (Sandbox Code Playgroud)

我从Map声明中获取,@types/core-js@0.9.34所以我想问题出在这个声明中?

其他版本和会议信息:

> tsc …
Run Code Online (Sandbox Code Playgroud)

javascript typescript

5
推荐指数
1
解决办法
2356
查看次数

标签 统计

javascript ×1

typescript ×1