MatchingKeys type

type MatchingKeys<TRecord, TMatch, K> = K extends (
  TRecord[K] extends TMatch ? K : never
)
  ? K
  : never