He probado el siguiente código JavaScript:
> var {a} = undefined; Thrown: TypeError: Cannot destructure property `a` of 'undefined' or 'null'. > var {a} = false; undefined Esencialmente, ¿alguien puede explicarme este error? ¿Por qué ocurre y cómo se establece {a} como undefined en la segunda línea?
En el primer ejemplo, intenta acceder al campo a de indefinido, lo que genera un error. Puede intentar acceder a campos undefined manualmente:
console.log(undefined.a);Conducirá a:
Uncaught TypeError: Cannot read property 'a' of undefined En el segundo ejemplo accedes a campo de false, pero false no tiene a , por eso no está undefined . Puede probarlo manualmente para:
console.log(false.a); // undefined Si desea evitar valores undefined después de la desestructuración, puede asignar un valor predeterminado:
let { a = "default value" } = false; console.log(a); // default value