Tapuscrit me donne cette erreur lorsque je tente de itérer sur la valeur retournée par Map.values()
(où la carte est de type < nombre, Foo >):erreur Tapuscrit: Map.values () donnant IterableIterator pas Iterable
error TS2495: Type 'IterableIterator<Foo>' is not an array type or a string type.
Selon le ES6 docMap.values()
devrait retourner un Iterable
pas un IterableIterator et je devrais être capable de l'utiliser dans une boucle for-of.
Cela fonctionne très bien dans 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) }
Cela donne l'erreur de 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) }
Je reçois des déclarations de carte de @types/[email protected]
donc je suppose que la question est dans cette déclaration ??
Autre version & info conf:
> tsc --version
Version 2.0.3
> cat tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"typeRoots": [
"./node_modules/@types/"
]
},
"compileOnSave": true,
"exclude": [
"node_modules/*",
"**/*-aot.ts"
]
}