so I am trying to make a object parameter optional, with optional props, and have a default value at the same time:
const myfunc = ({ stop = false }: { stop?: boolean } = { stop: false }) => { // do stuff with "stop" }
this works fine, but notice that crazy function definition!
Any way to not repeat so much code?
Advertisement
Answer
I would probably write this like this:
interface MyFuncOptions { stop: boolean; } const myFunc = (options: Partial<MyFuncOptions> = {}) => { const defaultOptions: MyFuncOptions = { stop: false, }; const finalOptions = { ...defaultOptions, ...options } const { stop } = finalOptions; // ... }