Variables don't get separate closures for each loop iteration. The compiler complains. For example:
const fns: any[] = []
let glb1 = 0
for (let k of [300, 20, 1]) {
const kk = k
fns.push(qux2)
function qux2() {
glb1 += kk
}
}
for (let f of fns) f()
assert(glb1 === 321)
Variables don't get separate closures for each loop iteration. The compiler complains. For example:
(see
13actions.ts
test case).