UNPKG

react-redux-typescript

Version:
13 lines (12 loc) 667 B
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>>;