haizlin / fe-interview

前端面试每日 3+1,以面试题来驱动学习,提倡每日学习与思考,每天进步一点!每天早上5点纯手工发布面试题(死磕自己,愉悦大家),6000+道前端面试题全面覆盖,HTML/CSS/JavaScript/Vue/React/Nodejs/TypeScript/ECMAScritpt/Webpack/Jquery/小程序/软技能……
http://www.h-camel.com
MIT License
25.32k stars 3.25k forks source link

[TypeScript] 第1508天 在TypeScript中interface与type有什么区别? #5469

Open haizhilin2013 opened 1 year ago

haizhilin2013 commented 1 year ago

第1508天 在TypeScript中interface与type有什么区别?

3+1官网

我也要出题

hemengzhao commented 1 year ago

Interface: 接口

特点: 1,可以用来定义描述对象形式的结构,包含属性,方法,函数签名等.

  1. 可以进行扩展,支持继承其他接口
  2. 可以被类实现(implements)

Type: 类型别名 特点

  1. 可以用于定义任意的数据类型,包裹基本类型,联合类型,交叉类型,函数类型等
  2. 可以通过联合类型实现类似接口的效果
  3. 不能被类实现

总结 interface 主要用于描述对象的形状,而 type 不仅可以描述对象形状,还可以描述任意类型。 interface 可以进行扩展,而 type 可以使用交叉类型实现相似的效果。 当你定义对象的形状时,优先选择 interface。如果需要联合类型、交叉类型、基本类型等,或者需要对现有类型取别名时,可以使用 type。

llccing commented 3 months ago

问题和 https://github.com/haizlin/fe-interview/issues/2473 一致。