Search code examples
javascriptfunctionecmascript-6

Set only one optional parameter of a JS function with ES6


In python, we can do:

func(a, b=1, c=2)

And then call it like that

func(8, c=5)

With ES6, we can declare it in the same way :

func(a, b=1, c=2)

But how to set c without setting b to undefined ?


Solution

  • You can create a function that accepts an object, and get the parameters using destructuring. Now you can pass the parameters in any order you wish:

    function fn({ a, b = 1, c = 2 }) {
      console.log({ a, b, c })
    }
    
    fn({ a: 8, c: 5 })