Two classes with byte-for-byte identical structure are not assignable to each other. Why does TypeScript abandon structural typing here?class C1 { private x = 1; } class C2 { private x = 1; } let a: C1 = new C2();