Skip to content

TS

type和interface的区别

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