I'm struggling to find the definition of the & operator in TypeScript. I have recently come across the following code:

<!-- language: lang-js -->
type IRecord<T> = T & TypedMap<T>;

What does that operator do, and how is it different from the union type |?