react-redux-typescript
Version:
React / Redux / TypeScript Utils
13 lines (12 loc) • 667 B
TypeScript
export declare type DiffKeys<K extends string, L extends string> = ({
[P in K]: P;
} & {
[P in L]: never;
} & {
[k: string]: never;
})[K];
export declare type OmitKeys<K extends string, K2 extends K> = (DiffKeys<K, K2>);
export declare type Diff<T extends object, U extends object> = Pick<T, DiffKeys<keyof T, keyof U>>;
export declare type Omit<T extends object, K extends keyof T> = Pick<T, DiffKeys<keyof T, K>>;
export declare type Overwrite<T extends object, U extends object> = Pick<(Diff<T, U> & U), OmitKeys<keyof T, never>>;
export declare type Assign<T extends object, U extends object> = Pick<(Diff<T, U> & U), OmitKeys<keyof (T & U), never>>;