Este TypeError se lanza cuando intentas asignar una propiedad a un valor que es undefined. A diferencia de leer una propiedad de undefined, escribir en él nunca se ignora silenciosamente: siempre lanza inmediatamente.
Por qué ocurre
- •Una variable se declara pero nunca se asigna a un objeto antes de la asignación de propiedades.
- •Una función devuelve undefined cuando se esperaba que devolviera un objeto.
- •Una operación asíncrona aún no ha completado y el resultado sigue siendo undefined.
- •Un error tipográfico en el nombre de una variable referencia el enlace incorrecto (undefined).
Ejemplos
Código que causa el error
let user;
user.name = "Alice";Error en la terminal
TypeError: Cannot set properties of undefined (setting 'name')
Cómo solucionarlo
Inicializa las variables a un objeto vacío ({}) o el valor predeterminado apropiado antes de asignar propiedades. Usa optional chaining (?.) para leer, pero recuerda que no ayuda para escribir. Agrega verificaciones de null o valores predeterminados cuando una función pueda devolver undefined.
Código corregido
let user = {};
user.name = "Alice";
console.log(user.name); // "Alice"Errores relacionados
¿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