1. TypeScript compatibility model is…
Compatibility is about shape. If two types have the same required members, values are assignable between them—names don’t need to match.
type A = { x: number };
interface B { x: number }
const a: A = { x: 1 };
const b: B = a; // shape-compatible