I am very confusing about TypeScript intersection, for example:
type A = 1 | 2;
type B = 2 | 3;
type AB = A & B;
type C = { a: 1, b: 2 };
type D = { b: 2, c: 3 };
type CD = A & B;
Type AB returns 2, this is easy to understand, but why CD returns {a: 1, b: 2, c: 3}, from my understanding, CD should returns {b: 2}, because a property only on C and c property only on D.