Declaración de variables en TypeScript
En un post anterior vimos el abanico de Tipos de Datos en TypeScript de los cuales disponemos. El día de hoy veremos las diferentes formas que tenemos para declarar e inicializar variables lo cual incluye la inferencia de tipos y el tipado dinámico.
Reglas para el nombrado de identificadores
Case-Sensitivity: Todos los nombres de variables son sensibles a mayúsculas y minúsculas, lo cual indica que la variable num
es distinta a la variable Num
.
Label-Rule: Las variables deben comenzar con una letra, un guión al piso ( _ ) o un signo de dólar, seguido de una combinación de letras, números, guiones al piso y signos de dólar.
Not-Keyword: Las nombres de variables no puedes ser iguales a una palabra reservada del lenguaje.
Inferencia de tipos
Tal y como vimos en Tipos de Datos en TypeScript, para declarar variables con tipo siempre se deben usar las palabras reservadas const
, var
o let
. Sin embargo, si no se especifica el tipo de una variable esta se infiere de manera automática con su valor. Por ejemplo, el tipo de la siguiente variable será inferido a string.
let userName = 'Steve';
Cuando se infiere el tipo, la variable conservará las mismas caraceterísticas de una variable que se declara como el tipo inferido. Esto quiere decir, que no podrá ser reasginada con un valor de otro tipo. TypeScript siempre intentará donde vea que sea posible, inferir el tipo de una asignacion. Observa el siguiente ejemplo en donde no se definió un array de strings, sin embargo, TypeScript lo infiere y lanza un error cuando se inyecta un error de typo.
// No type annotations here, but TypeScript can spot the bug
const names = ["Alice", "Bob", "Eve"];
// Contextual typing for function
names.forEach(function (s) {
console.log(s.toUppercase());
});
Este ejemplo lanzaría el siguiente error en el compilador.
Property 'toUppercase' does not exist on type 'string'. Did you mean 'toUpperCase'?
Declaración explícita
Podemos declarar explícitamente el tipo que tendrá una variable utilizando la siguiente sintaxis.
let nombreVariable: tipo;
Porsupuesto, puedes usar los modificadores var
, let
y const
al declarar variables en TypeScript (ver Declaración de variables en JavaScript). También puedes inicializar el valor en una misma sentencia. Veamos el siguiente ejemplo en donde declaramos un string e inicializamos con un valor
let userName: string = 'Steve';