当我尝试遍历返回的值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)