function myFunction(data, options = { merge: true, cache: false }) { console.log({ merge: options.merge }); console.log({ cache: options.cache }); console.log("----------------------"); } myFunction({}, { cache: true }); myFunction({}, { merge: false }); myFunction({});¿Cómo puedo hacer, en el ejemplo anterior, para evitar perder el valor predeterminado del campo opcional "combinar"?
Puede utilizar la asignación de valores predeterminados con la notación de asignación de desestructuración
{ merge = true, cache = false } = {} function myFunction(data, { merge = true, cache = false } = {}) { console.log({ merge: merge }); console.log({ cache: cache }); console.log("----------------------"); } myFunction({}, { cache: true }); myFunction({}, { merge: false }); myFunction({});Otra forma es utilizar la función de valores alternativos de la desestructuración
function myFunction(data, options = {}) { const {merge = true, cache = true} = options; console.log({merge}); console.log({cache}); console.log("----------------------"); }Una de las formas:
function myFunction(data, options) { options = {merge: true, cache: true, ...options} console.log({merge: options.merge}); console.log({cache: options.cache}); console.log("----------------------"); }