Si tengo una función declarada con dos parámetros predeterminados, así:
const doSomething = (defaultVal = 'me default', useThis = false) => { /* ... */ };Y quiero llamar a la función pasando un argumento para el segundo parámetro, pero hacer que el primer argumento solo use el valor predeterminado:
doSomething(???, true);¿Hay alguna sintaxis para decirle a la función que use el parámetro predeterminado, o se necesita pasar un valor real?
Pasar indefinido
const doSomething = (defaultVal = 'me default', useThis = false) => { console.log({ defaultVal, useThis }); }; doSomething(undefined, true)No hay sintaxis o clave para ese propósito. Debe usar los parámetros predeterminados como último. Para ese ejemplo, si el parámetro useThis recibirá un valor cada vez que pueda dar useThis como primer argumento.
Alternativamente, puede dar un objeto como parámetro. Dentro de la función, puede fusionar su plantilla (objeto de valor predeterminado) y el objeto de argumento y luego usarlo en su función.
const fn = (props) => { const newProps = { defaultVal : "default", useThis : false, ...props } }