Supongamos que tengo lo siguiente:
const myFunction = ({ returnProp = null }) => ({ propA: 'val1', propB: 'val2', propC: 'val3' })[returnProp || {}] // ^^ // not sure what to put here Si returnProp es nulo, ¿cómo puedo devolver el objeto completo?
Si especifico returnProp , me gustaría que me lo devolvieran:
const propA = myFunction({ returnProp: 'propA' }) // 'val1'Si no lo especifico, me gustaría el objeto completo:
const obj = myFunction({}) /* { propA: 'val1', propB: 'val2', propC: 'val3' } */Puede lograrlo utilizando el operador coalescente nulo .
const myFunction = ({ returnProp = null }) => { const obj = { propA: "val1", propB: "val2", propC: "val3", }; return obj[returnProp] ?? obj; }; console.log(myFunction({ returnProp: "propA" })); console.log(myFunction({ returnProp: null })); console.log(myFunction({ returnProp: undefined })); console.log(myFunction({}));Tal vez podría usar un getter invocado con una cadena vacía:
const myFunction = ({ returnProp = '' }) => ({ propA: 'val1', propB: 'val2', propC: 'val3', get ['']() {delete this['']; return this} })[returnProp] console.log(myFunction({ returnProp: "propA" })); console.log(myFunction({}));