react-new-hoc
Version:
Work with React and HOCs (Higher-Order Components)
21 lines (19 loc) • 610 B
text/typescript
import { Fn } from "hotscript";
import { RequiredKeysOf, SetOptional } from "type-fest";
export interface MergeByIntersection<Map extends object> extends Fn {
return: SetOptional<
{
[K in keyof Map | keyof this["arg0"]]: K extends keyof this["arg0"]
? K extends keyof Map
? Exclude<this["arg0"][K] & Map[K], undefined>
: Exclude<this["arg0"][K], undefined>
: K extends keyof Map
? Exclude<Map[K], undefined>
: never;
},
Exclude<
keyof this["arg0"] | keyof Map,
RequiredKeysOf<this["arg0"]> | RequiredKeysOf<Map>
>
>;
}