Mi función tiene un parámetro dtoIn y estoy tratando de verificar si no está definido o es nulo.
Tengo valores asignados como este, por lo que no debería estar indefinido, pero entiendo que el objeto no está definido de todos modos. ¿Puedo tener algún consejo por favor?
{ count : 10, minAge : 10, maxAge : 10, } function main(dtoIn={count, minAge, maxAge}) { if (typeof dtoIn !== "undefined" && dtoIn !== null){ alert(`empty`); } }Creo que hay un par de malentendidos en su código sobre cómo funcionan los valores predeterminados de función y desestructuración de objetos .
Considere el siguiente ejemplo:
let obj = { count : 10, minAge : 10, maxAge : 10, } function main({ count = 15, minAge = 15, maxAge = 15 } = {}) { console.log(count, minAge, maxAge) } main(obj); main();En realidad, ni siquiera necesitamos realizar comprobaciones indefinidas aquí, porque esta sintaxis es para desestructurar un objeto determinado para contar, minAge y maxAge O, si no se proporciona nada, lo desestructuramos en count = 15, minAge = 15 y maxAge = 15 .
Si desea mantener el parámetro con nombre dtoIn y tener valores predeterminados para él, puede hacerlo así:
let obj = { count : 10, minAge : 10, maxAge : 10, } function main(dtoIn = { count: 15, minAge: 15, maxAge: 15 }) { console.log(dtoIn); } main(obj); main();Supongo que estás asignando parámetros de función incorrectamente, prueba de esta manera
let dtoIn = { count : 10, minAge : 10, maxAge : 10, }; function main(val) { if (typeof(val) == "undefined" && val !== null){ alert("empty"); } } main(dtoIn);