This is a great syntaxe I sometimes try to abide.
Little drawbacks for this is that your function signature can go crazy if you have a lot of options. And the default values are static (which is mostly a good thing, but can be a pain in other situations).
You can use Object.assign, but it lost the "Exposing the flag names to the interface".
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.