Este TypeError ocurre cuando intentas desestructurar propiedades de un valor que es null o undefined. La desestructuración requiere que el lado derecho sea un objeto o array; null y undefined no pueden desestructurarse.
Por qué ocurre
- •Una función o llamada a API devuelve undefined cuando se esperaba un objeto.
- •Una obtención de datos asíncrona aún no se ha resuelto y el estado sigue siendo undefined.
- •Una ruta de retorno condicional deja el valor undefined en algunos casos.
- •Desestructuración desde un parámetro de función opcional que no fue proporcionado.
Ejemplos
Código que causa el error
function getUser() {
return undefined;
}
const { name, email } = getUser();Error en la terminal
TypeError: Cannot destructure property 'name' of undefined as it is undefined.
Cómo solucionarlo
Proporciona un fallback con nullish coalescing: const { x } = getValue() ?? {}. Agrega un valor predeterminado en la firma de la función: function fn({ x = 0 } = {}). Siempre inicializa el estado a un objeto vacío en lugar de undefined al esperar datos asíncronos.
Código corregido
function getUser() {
return undefined;
}
const { name, email } = getUser() ?? {};
console.log(name); // undefined (no throw)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