Solución
solution.tsTypeScript
// Corrige el orden de declaración para evitar el error TDZ
// counter debe declararse ANTES de usarse en el bucle
function fixedLoop(): number {
// Inicio de TDZ: la variable tipo number, 'counter'
// existe al inicio del bloque del cuerpo de la función
// Forma parte del espacio de nombres de esta función; tiene
// tiene function scope; como un de block scope del cuerpo de la función ({ block scope })
// Un espacio de nombres (namespace) es un contexto para identificadores,
// una agrupación lógica de nombres utilizados en un programa.
// => ya no puedo volver a usar 'counter' como nombre de una variable DENTRO de la función
let counter: number;
let total = 0;
// Fin de TDZ: a 'counter' le asignamos el valor 1
// el resto del código "respira" aliviado. XD
counter =1;
for (let i = 0; i < 3; i++) {
total += counter;
}
// Cuac!!
// let counter = 1;
return total;
}
export { fixedLoop };0respuestas