Learnings
Types as sets of values
|
) and intersection (&
)
keyof with union (There are no keys that TypeScript can guarantee belong to a value in the union type, so keyof for the union must be the empty set (never). Or, more formally: