TS
type和interface的区别
特性 | interface | type |
---|---|---|
类型范围 | 仅能定义对象、类、函数等结构类型 | 可表示任意类型(原始值、联合类型、交叉类型等) |
重复声明 | 支持声明合并(同名自动合并) | 不允许重复定义,会报错 |
扩展方式 | 通过extends 继承(仅支持对象类型) | 通过& 交叉类型合并(支持任意类型) |
实现类 | 类可通过implements 实现接口 | 类无法直接实现type (除非type 是对象类型) |
元组类型 | 不支持 | 可定义元组(如type Tuple = [string, number] ) |
映射类型 | 不支持 | 可使用映射类型(如Readonly<T> ) |
与第三方库交互 | 更常用(许多库使用interface 定义 API) | 较少直接使用 |