Lingua-e
← Errores
JavaScript

Qué significa Cannot read properties of undefined y cómo solucionarlo

Referencia del error

Cannot read properties of undefined

Lenguaje

JavaScript

Severidad

Alta

Cuándo ocurre

Este error se lanza en JavaScript cuando intentas acceder a una propiedad sobre un valor que es undefined.

Posibles soluciones

Usa optional chaining (?.) para acceder de forma segura a propiedades anidadas sin lanzar errores. Agrega verificaciones de null o undefined antes de acceder a propiedades cuando no puedes garantizar que el valor exista. Activa el modo estricto de TypeScript para detectar estos problemas en tiempo de compilación.

Más detalles

Este error se lanza en JavaScript cuando intentas acceder a una propiedad sobre un valor que es undefined. undefined no tiene propiedades, por lo que cualquier acceso a una propiedad sobre él lanza inmediatamente un TypeError. Es uno de los errores en tiempo de ejecución más frecuentes en proyectos JavaScript.

Por qué ocurre

  • Una función devuelve undefined (implícita o explícitamente) y quien la llama accede a una propiedad del valor de retorno sin verificarlo.
  • Un índice de array fuera de rango devuelve undefined, y luego se accede a una propiedad sobre él.
  • Una respuesta de API u operación asíncrona aún no se ha resuelto y la variable sigue siendo undefined.
  • Una variable desestructurada que no estaba presente en el objeto fuente toma el valor undefined por defecto.

Posibles soluciones

Usa optional chaining (?.) para acceder de forma segura a propiedades anidadas sin lanzar errores. Agrega verificaciones de null o undefined antes de acceder a propiedades cuando no puedes garantizar que el valor exista. Activa el modo estricto de TypeScript para detectar estos problemas en tiempo de compilación.

Ejemplos

JavaScript

Código que causa el error

const user = undefined;
console.log(user.name);

Error en la terminal

TypeError: Cannot read properties of undefined (reading 'name')

Código corregido

const user = undefined;

// Option 1: guard with a check
if (user !== undefined && user !== null) {
  console.log(user.name);
}

// Option 2: optional chaining
console.log(user?.name);  // undefined, no error

Practica en inglés

¿Cómo le explicarías un Cannot read properties of undefined a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis