Ir al contenido

Variables de bloque en TypeScript

Mediante las variables de bloque en TypeScript podemos atacar uno de los grandes problemas del lenguaje Javascript: el uso de la declaración de variables mediante var. El ámbito de las variables definidas con var es un ámbito global, por lo que una vez definidas podemos acceder a ellas desde cualquier parte del programa.

En lenguajes más estructurados, la definición y ámbito de las variables se asocia al bloque. Es decir, la variable puede ser accedida dentro de su bloque de sentencias o de los bloques anidados, pero nunca desde otro punto.

Para conseguir esto podemos definir variables de bloque en TypeScript mediante la sentencia let.

La estructura para definir una variable de bloque es la siguiente:

let variable:tipo = valor;

Así, por ejemplo, podemos definir una variable de bloque de tipo cadena de la siguiente forma:

let cadena:string = "Soy una cadena";

Pero lo interesante es que veamos cómo funcionan. Para ello nos vamos a apoyar en el siguiente código:

function mifuncion() {
let a:number = 1;
let validar:boolean = true;
if (validar) {
var b:number = 2;
let c:number = a+b;
}
console.log(b);
console.log(c); // Da error
}

Como podemos apreciar, es una función que tiene un bloque de sentencias anidado mediante una estructura selectiva if. Si analizamos la variable a, podemos ver que esta variable se puede acceder tanto en su bloque de sentencias como en el anidado. Es por ello que cuando queremos acceder a ella dentro de la estructura if no hay ningún problema:

if (validar) {
var b:number = 2;
let c:number = a+b;
}

Si bien nos fijaremos ahora en la variable c. Esta variable de bloque solo podrá ser accedida dentro de su bloque, por lo tanto solo tiene visibilidad dentro de la estructura if. En el momento que hemos intentado acceder a ella fuera de su bloque mediante el método console.log(), veremos que da error, ya que no hay ámbito de visibilidad de dicha variable.

Por el contrario, vemos que una variable definida de forma global mediante la sentencia var, como es el caso de la variable b, puede ser accedida sin problemas dentro de otra estructura de bloque de sentencias que no sea la que la definió.

Espero que con este ejemplo haya quedado un poco más claro cómo se pueden definir variables de bloque en TypeScript mediante la sentencia let.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Variables de bloque en TypeScript

Descubre cómo las variables de bloque en TypeScript mejoran el ámbito de las variables y evitan errores comunes de JavaScript. ¡Optimiza tu código ahora!

Descargar código