私はキーとしてIDを持つTypescriptマップを持ち、値としてブール値を持っています。私はマップを繰り返して、少なくとも1つが真であるかどうかを確認したい。私はそれがforEachで可能であることを知っているが、最初のものが見つかった後にループを終了したい。typescriptでマップを反復することができません
これは私が(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of#Iterating_over_a_Mapによる)コーディングです:
private isOneSelected(): boolean {
for (let [key, value] of this.selectionMap) {
if (value) {
return true;
}
}
return false;
}
しかし、それは全くのループに入っていません。 JSコンパイルされたファイルは次のようになります。
SelectionController.prototype.isOneSelected = function() {
for (var _i = 0, _a = this.selectionMap; _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
if (value) {
return true;
}
}
return false;
};
私はES6に対してコンパイルしていると私はES6-シムタイピングを使用しています: TSconfigのファイル:
[...]
"compilerOptions": {
"sourceMap": true,
"rootDir": "./client",
"outDir": ".tmp/client",
"target": "ES6",
"module": "commonjs"
},
[...]
おかげで、
トビアス
を
* TypeScript map *とはどういう意味ですか? 'Map'や' [[index:number]:number'のようなオブジェクト?そして、あなたはどんなエラーになりますか? – Yogu
マップは次のようになります。selectionMap:Map; これは問題です。私は何の誤りもありません。マップはループのために定義されておらず、私は入っていません(ただし、console.logやforループの外側にあるものは問題ありません)。 –