-
合并声明:使用
interface
定义的类型可以进行合并声明,这意味着你可以在多个地方扩展同一个接口。但是,type
定义的类型不能进行合并声明。
// 第一个声明 interface Person { name: string; } // 第二个声明 interface Person { age: number; } // 合并后的声明 const person: Person = { name: "Alice", age: 25 };
-
可扩展性:使用
interface
定义的类型可以通过继承或实现其他接口来扩展。这意味着你可以创建一个接口继承自另一个接口,并添加或覆盖属性。但是,使用type
定义的类型无法直接实现这种扩展性。
-
表示能力:
type
更强大,可以表示更复杂的类型,包括联合类型(union types)、交叉类型(intersection types)和元组(tuples)。另一方面,interface
主要用于描述对象的形状,对于其他类型的表示能力相对较弱。