Anuncios

Bienvenidos sean a este post, hoy veremos una palabra para declarar nuestras variables.

Anuncios
Anuncios

Si son conocedores de Javascript saben que de forma original la palabra reservada para establecer una variable es var pero esta no solo es muy basica porque no tiene una diferencia entre cuando son globales o locales, lo cual puede terminar en errores. Porque tenemos variables con el mismo nombre en el mismo scope pero con distintos tipos de datos donde si estamos en Javascript no tendremos mayores inconvenientes pero en typescript si por lo comentado en este post, y aqui es donde entra en accion let.

Anuncios
Anuncios

let es usado tambien para declarar variables, es una variante que se agrego con el tiempo y tiene algunas ventajas con respecto a var. La primera es que tiene un scope y por lo tanto diferencia entre variables locales y globales, la otra es que una vez establecido el nombre dentro del mismo scope no podemos repetirlo, var si nos permite esto, por lo tanto podemos tener variables con el mismo nombre en distintos scopes o rangos y cada uno contendra su valor y su tipo. Vamos a analizar un ejemplo simple y para ello generen un nuevo archivo y agreguen el siguiente codigo:

var indice: number = 0;
if (indice == 0) {
var indice: number = 2;
console.log("Indice = " + indice);
}
console.log("Indice = " + indice);
Anuncios
Anuncios

Este es el primer caso, para ello usamos a var donde primero definimos una variable llamada indice con un valor inicial, despues tenemos un condicional donde verifica si la variable anterior posee un valor de 0, en caso de ser verdadero define otra variable con el mismo nombre pero con otro valor, luego mostramos el valor de esta variable y por fuera del condicional mostramos el valor de la variable inicial, esto deberia ser asi porque corresponderia al indice global y el otro es local del condicional, compilen y tendremos esta salida:

$ node variables.js
Indice = 2
Indice = 2
$
Anuncios

Sucedio lo que les comente antes, al no existir una diferencia entre globales y locales todas son consideradas como globales para el codigo por lo tanto esto puede derivar en un error dado que no necesariamente nuestra variable local debe modificar la global, tomemos el codigo anterior y modifiquemoslo de la siguiente manera:

let indice: number = 0;
if (indice == 0) {
let indice: number = 2;
console.log("Indice = " + indice);
}
console.log("Indice = " + indice);
Anuncios

El codigo es basicamente lo mismo pero la unica diferencia es que modificamos la palabra var por let, compilemos nuevamente para ver como es su salida ahora:

$ node variables.js
Indice = 2
Indice = 0
$
Anuncios

Ahora si tenemos una diferenciacion entre los distintos scopes, es decir tenemos realmente variables globales y locales, por lo tanto podemos tener una variable global para un tema y variables locales con el mismo nombre pero a partir de ahora no afectaran a la global y seran utilizados unicamente en su scope o rango, inclusive podemos trabajar con el mismo nombre pero con distintos tipos siempre y cuando no esten en el mismo scope, tomemos el codigo anterior y efectuemos la siguiente modificacion:

let indice: number = 0;
if (indice == 0) {
let indice: number = 2;
console.log("Indice = " + indice);
}
let indice: string = "Prueba";
console.log("Indice = " + indice);
Anuncios

En este caso agregamos una nueva linea donde definimos otra variable con el mismo nombre, distinto tipo y distinto valor, si lo compilan les sucedera lo siguiente:

$ tsc variables.ts
variables.ts:1:5 - error TS2451: Cannot redeclare block-scoped variable 'indice'.

1 let indice: number = 0;
~~~~~~

variables.ts:6:5 - error TS2451: Cannot redeclare block-scoped variable 'indice'.

6 let indice: string = "Prueba";
~~~~~~


Found 2 errors in the same file, starting at: variables.ts:1

$
Anuncios

Aca ocurrio lo que mencionamos anteriormente mientras estemos en el mismo scope no podemos redeclarar una variable, sin importar que sea otro tipo este siempre nos devolvera este error por lo comentado anteriormente, pero es recomendado como una buena practica utilizar a let en lugar de var por todo lo comentado anteriormente sino debemos tener mucho cuidado con los nombres que asignemos.

Anuncios

En resumen, hoy hemos visto let, que es, para que sirve, como se utiliza, los beneficios que nos brinda, asi como tambien la diferencia con respecto a var, y lo que debemos evitar, espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donation

It’s for maintenance of the site, thanks!

$1.50