Búsqueda de sitios web

compilación - 'var' y 'let' en Typescript 1.5


¿Cuál es exactamente la diferencia entre usar 'var' o 'let' en Typescript? Sé que 'let' permite que la variable se defina más adelante dentro de un alcance sin que se use fuera de dicho alcance. Eso es obviamente una ventaja agradable para los iteradores en los bucles for. Sé que esta es una definición de ES6, así que compilar a ES6 debería verse casi idéntico en términos de 'var' y 'let'.

Pero, cuando se compila a JavaScript ES5 que no soporta 'let', ¿qué está pasando exactamente? ¿Existen variables con nombres extraños que el compilador crea para evitar el uso de dichas variables en el contexto del archivo TypeScript? ¿Qué sucede en situaciones donde defines muchas variables 'let' a lo largo de una función? ¿Hay un impacto en el rendimiento que debería preocuparme?

Básicamente, ¿qué ocurre cuando TypeScript compila las variables let a JavaScript ES5?

Respuesta #1

La forma más fácil de encontrar respuestas a este tipo de preguntas es probarlo en el TypeScript Playground.

TypeScript renombra las variables dentro del ámbito de bloque. No hay sobrecarga de rendimiento en comparación con el uso de variables regulares definidas con var.

Este código:

var i = 0;
for (let i = 0; i < 5; i++) {}
i++;

Compila a:

var i = 0;
for (var i_1 = 0; i_1 < 5; i_1++) { }
i++;

Aquí hay más información sobre let.

Artículos relacionados