fe-interview
fe-interview copied to clipboard
[TypeScript] 第1508天 在TypeScript中interface与type有什么区别?
Interface: 接口
特点: 1,可以用来定义描述对象形式的结构,包含属性,方法,函数签名等. 2. 可以进行扩展,支持继承其他接口 3. 可以被类实现(implements)
Type: 类型别名 特点
- 可以用于定义任意的数据类型,包裹基本类型,联合类型,交叉类型,函数类型等
- 可以通过联合类型实现类似接口的效果
- 不能被类实现
总结 interface 主要用于描述对象的形状,而 type 不仅可以描述对象形状,还可以描述任意类型。 interface 可以进行扩展,而 type 可以使用交叉类型实现相似的效果。 当你定义对象的形状时,优先选择 interface。如果需要联合类型、交叉类型、基本类型等,或者需要对现有类型取别名时,可以使用 type。
问题和 https://github.com/haizlin/fe-interview/issues/2473 一致。