Skip to content

Instantly share code, notes, and snippets.

@dsvgit
Created November 23, 2023 11:48
Show Gist options
  • Save dsvgit/86bab140b1cac3b7b28e6a76be6b5eaa to your computer and use it in GitHub Desktop.
Save dsvgit/86bab140b1cac3b7b28e6a76be6b5eaa to your computer and use it in GitHub Desktop.
makeDefaults typescript
export function makeDefaults<T extends Record<string, any>, D extends Partial<T>>(
options: T,
defaults: D
): T & D {
for (const key in options) {
if (Object.hasOwn(options, key) && options[key] === undefined) {
delete options[key];
}
}
return { ...defaults, ...options };
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment