En TypeScript, podemos declarar variables utilizando la palabra clave let
o const
, seguida del nombre de la variable (opcionalmente, su tipo).
La palabra clave let
declara variables que tienen un ámbito de bloque (block scope). Esto significa que la variable solo es accesible dentro del bloque donde las definimos.
let nombre: string = "Luis";
nombre = "Carlos"; // Correcto
console.log(nombre); // Carlos
La palabra clave const
se utiliza para declarar constantes (es decir, variables cuyo valor no cambiará una vez asignado). También tienen un ámbito de bloque.
const PI: number = 3.1416;
console.log(PI); // 3.1416
// PI = 3.14; // Error: No se puede asignar un nuevo valor a una constante
Ámbito de la Variable
El ámbito de una variable determina dónde se puede acceder a ella en el código. TypeScript tiene tres tipos principales de ámbito.
Ámbito global
Una variable declarada fuera de cualquier función o bloque tiene un ámbito global y es accesible desde cualquier parte del código.
let globalVar: string = "Soy global";
function mostrarGlobal() {
console.log(globalVar); // Soy global
}
Ámbito de bloque
Las variables declaradas con let
o const
dentro de un bloque (por ejemplo, dentro de una estructura if
, for
, o {}
) solo son accesibles dentro de ese bloque.
if (true) {
let bloqueLet: string = "Dentro del bloque";
console.log(bloqueLet); // Dentro del bloque
}
// console.log(bloqueLet); // Error: bloqueLet no está definido
Ámbito de función
Una variable declarada dentro de una función solo es accesible dentro de esa función. Las variables declaradas con var
tienen ámbito de función.
function ejemploFuncion() {
var funcionVar: string = "Dentro de la función";
console.log(funcionVar); // Dentro de la función
}
// console.log(funcionVar); // Error: funcionVar no está definido
No se recomienda usar var
en la actualidad. De hecho ni siquiera la he puesto al principio en opciones. De verdad, no la uséis.
Tipos de variables en TypeScript
En TypeScript, podemos asignar diferentes tipos a nuestras variables. Por ejemplo, así,
let nombre: string = "Luis";
let edad: number = 25;
let esMayor: boolean = true;
let listaNumeros: number[] = [1, 2, 3, 4, 5];
let persona: { nombre: string, edad: number } = { nombre: "Luis", edad: 25 };
En el resto del curso profundizaremos en los distintos tipos disponibles y cómo usarlos, ya que son el principal atractivo de TypeScript
Inferencia de tipos
En TypeScript, el compilador puede inferir automáticamente el tipo de una variable según el valor que le asignemos.
Esto significa que no siempre es necesario especificar el tipo de una variable explícitamente, ya que TypeScript puede deducirlo por sí mismo.
let nombre = "Luis";
let edad = 25;
En el ejemplo anterior,
- No hemos especificado el tipo de las variables
nombre
yedad
- Sin embargo, TypeScript puede inferir que
nombre
es de tipostring
yedad
es de tiponumber
por los valores que les asignamos.
TypeScript también infiere en casos más complejos, como los tipos de retorno de las funciones basándose en el valor de retorno.
function sumar(a: number, b: number) {
return a + b; // Tipo inferido como number
}
let resultado = sumar(1, 2); // Tipo inferido como number