Skip to content

Instantly share code, notes, and snippets.

@bogdanovna
Last active September 17, 2024 06:07
Show Gist options
  • Save bogdanovna/f887fb9c64a9b8366bfec57b1088fa46 to your computer and use it in GitHub Desktop.
Save bogdanovna/f887fb9c64a9b8366bfec57b1088fa46 to your computer and use it in GitHub Desktop.
type Omit with additional generic modifications
export type Prettify<T> = {
[K in keyof T]: T[K];
} & {};
export type Prefixed<T, P extends string> = {
[K in keyof T as K extends string ? `${P}${K}` : never]: T[K];
};
export type OmitStrict<T extends Record<string, any>, K extends keyof T> = Omit<
T,
K
>;
export type OmitReplace<
T extends Record<string, any>,
U extends Partial<{
[key in keyof T]: any;
}>,
> = Omit<T, keyof U> & U;
export type AddOrReplace<
T extends Record<string, any>,
U extends Record<string, any>,
> = Omit<T, keyof U> & U;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment