在 TypeScript 中,interface(接口)和 type(类型别名)是定义对象形状和类型的两种核心方式。虽然它们在很多场景下功能相似,但在底层机制、扩展方式以及适用场景上有着关键的区别。
以下是详细的深度对比解析:
1. 核心区别:声明合并(最本质的区别)
- interface:支持声明合并。如果你多次定义同名的
interface,它们会自动合并为一个。 - type:不支持声明合并。同名的
type会导致编译错误(标识符冲突)。
{
: ;
}
{
: ;
}