TypeScript 使用结构化类型来确定类型兼容性。这意味着,如果两个类型具有相同的结构,则它们被认为是兼容的,而不管它们的名称如何。
以下是 TypeScript 中类型兼容性的一个示例:
interface Point { x: number; y: number; }
let p1: Point = { x: 10, y: 20 }; let p2: { x: number; y: number } = p1;
console.log(p2.x); // 输出:10
在这个示例中,p1 的类型是 Point,而 p2 的类型是 { x: number; y: number }。尽管这两个类型的名称不同,但它们被认为是兼容的,因为它们具有相同的结构。这意味着你可以将类型为 Point 的值赋给类型为 { x: number; y: number } 的变量,就像这个示例中 p1 和 p2 的用法一样。