>[danger]interface和type的区别?使用场景? 在 TypeScript 中,`interface` 和 `type` 都用于声明对象的类型。它们有一些相似之处,但也存在一些区别。下面是一个表格列举了它们的区别及使用场景: | 特性 | interface | type | | ----------- | --------- | ------------ | | 声明语法 | 使用 `interface` 关键字 | 使用 `type` 关键字 | | 对象类型 | 支持声明对象、类的形状和方法 | 支持声明对象、类的形状和方法 | | 可合并性 | 支持多次声明同名的接口,会自动合并成一个接口 | 不支持多次声明同名的类型,会报错 | | 扩展性 | 支持使用 `extends` 关键字扩展其他接口 | 支持使用 `extends` 关键字扩展其他类型 | | 实现/实例化 | 接口不能被直接实例化,只能被类实现 | 类型可以直接被实例化 | | 显式命名 | 接口的名称会显示在错误信息中 | 类型的名称不会显示在错误信息中 | 使用场景: - `interface` 通常用于描述对象的形状和类的实现。 - `type` 主要用于创建更复杂的类型别名,可以通过联合类型、交叉类型等进行组合,并且可以使用条件类型、映射类型等高级特性。