Qué significa Cannot read properties of undefined y cómo solucionarlo
Referencia del error
Cannot read properties of undefined
Lenguaje
Severidad
AltaCuá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.
Errores relacionados
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
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 errorPractica 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