我有一個使用ID作爲鍵和布爾值作爲值的Typescript地圖。我想迭代地圖並檢查是否至少有一個是真的。我知道forEach是可能的,但是我想在第一次找到後退出循環。使用打字稿對地圖進行迭代不起作用
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循環以外的東西工作正常)。 –