DocumentX Logo
DocumentX.
Ctrl+K
TypeScript/Palabras Claves

Declarar Variables

Definición, diferencias y ejemplos de uso de const, let y var en TypeScript.

Declaración de Variables en TypeScript

En TypeScript, al igual que en JavaScript moderno (ES6+), existen tres palabras clave principales para declarar variables: const, let y var. Cada una maneja de forma distinta el alcance (scope), la mutabilidad y la redeclaración.


1. const

La palabra clave const se utiliza para declarar variables con valores de solo lectura. Una vez asignado un valor, no se puede volver a reasignar.

  • Alcance (Scope): Bloque ({ }).
  • Reasignación: No permitida.
  • Redeclaración: No permitida.
  • Requisito: Debe inicializarse en el momento de la declaración.
typescriptconst nombre: string = "Carlos";

// ❌ Error: No se puede reasignar una constante
// nombre = "Juan";


// 💡 Nota sobre mutabilidad:
// Si 'const' almacena un objeto o un array, las propiedades internas SÍ se pueden modificar.
const usuario = {
    nombre: "Carlos",
    edad: 25
};

usuario.nombre = "Juan"; // ✅ Totalmente válido

2. let

La palabra clave let se utiliza cuando se sabe que el valor de la variable cambiará a lo largo de la ejecución del programa.

  • Alcance (Scope): Bloque ({ }).
  • Reasignación: Permitida.
  • Redeclaración: No permitida dentro del mismo bloque.
typescriptlet nombre: string = 'Carlos';

// ✅ Reasignación válida
nombre = "Juan";

if (true) {
    let nombre: string = 'Luis'; // ✅ Válido: es una variable distinta dentro del bloque 'if'
    console.log("Nombre:", nombre); // Imprime Luis
}

console.log("Nombre:", nombre); // Imprime Juan

3. var

var es la forma tradicional de declarar variables desde los inicios de JavaScript. Actualmente no se recomienda su uso en TypeScript debido a que no respeta el alcance de bloque y utiliza hoisting (elevación), lo cual suele generar errores difíciles de depurar.

  • Alcance (Scope): Función o global (ignora bloques como if, for, while).
  • Reasignación: Permitida.
  • Redeclaración: Permitida dentro del mismo ámbito.
typescriptvar nombre: string = "Carlos";
var nombre: string = "Juan"; // ✅ Se permite la redeclaración (puede causar fallos accidentales)

if (true) {
    var nombre: string = "Luis";
}

// ⚠️ La variable sigue existiendo fuera del bloque 'if'
console.log(nombre); // Imprime "Luis"

Tabla Comparativa

Propiedadconstletvar
Alcance (Scope)BloqueBloqueFunción / Global
Reasignable❌ No
Redeclarable❌ No❌ No
HoistingNo inicializadoNo inicializadoElevado como undefined
Buenas prácticasOpción por defectoSi cambia el valor⚠️ Evitar su uso