IntersectKeys
IntersectKeys<O, O1, match>: { 'default': Intersect<keyof O, keyof O1>; 'implements->': { [K in Keys<O>]: { 1: K; 0: never; }[Implements<O[K], At<O1, K>>]; }[Keys<O>]; 'extends->': { [K in Keys<O>]: { 1: K; 0: never; }[Extends<O[K], At<O1, K>>]; }[Keys<O>]; '<-implements': { [K in Keys<O>]: { 1: K; 0: never; }[Implements<At<O1, K>, O[K]>]; }[Keys<O>]; '<-extends': { [K in Keys<O>]: { 1: K; 0: never; }[Extends<At<O1, K>, O[K]>]; }[Keys<O>]; 'equals': { [K in Keys<O>]: { 1: K; 0: never; }[Equals<At<O1, K>, O[K]>]; }[Keys<O>]; }[match]
Type parameters
-
O: object
-
O1: object
-
match: Match
IntersectMatch
IntersectMatch<O, O1, match>: { [K in Keys<O>]: { 1: K; 0: never; }[{ 'default': Extends<O[K], At<O1, K>>; 'implements->': Implements<O[K], At<O1, K>>; 'extends->': Extends<O[K], At<O1, K>>; '<-implements': Implements<At<O1, K>, O[K]>; '<-extends': Extends<At<O1, K>, O[K]>; 'equals': Equals<At<O1, K>, O[K]>; }[match]]; }[Keys<O>]
Type parameters
-
O: object
-
O1: object
-
match: Match
Get the intersecting keys of
O
&O1
(Ifmatch = 'default'
, no type checks are done)