Skip to content

Instantly share code, notes, and snippets.

@js2me
Created October 31, 2019 13:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save js2me/8360d9a6b4e6c61579a4832544f00d58 to your computer and use it in GitHub Desktop.
Save js2me/8360d9a6b4e6c61579a4832544f00d58 to your computer and use it in GitHub Desktop.
Sexy common TypeScript types
type Mutate<T, PropertyName extends keyof T, NewValue> = Omit<T, PropertyName> & {
[K in keyof T]: K extends PropertyName ? NewValue : T[K];
}
type PickAndOmit<TPick, TOmit, PropertyName extends (keyof TPick & keyof TOmit)> = Pick<TPick, PropertyName> & Omit<TOmit, PropertyName>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment