What is the resolved type of `Shared`, and what is `keyof Shared`?type AB = { a: number; x: boolean } | { a: number; y: string }; type Shared = { [K in keyof AB]: AB[K] };