不好好看官方文档,在平时用的时会感觉typeScript中interface和type的作用好像都一样的,但其实也是有明显的差别的!面试问的时候,大脑会突然,呀一般就直接那样用就行了,到底是什么区别呢?。。。。无法说出关键点,本文主要以600字精确大概说明他们的区别,后续还会更新。
1、从定义类型来说
type关键字
可以定义类型别名,可以表示基本类型(string、number、undefined、null、boolean、symbol
)、对象类型、联合类型、元组和交集。
interface关键字
可以定义描述对象类型。
2、从继承来说
interface和type定义的类型都可以继承。type定义的类型可以继承interface,interface定义的类型也可以继承type。
3、从区别来说
- type可以定义基本类型,但interface不可以。
- interface重复定义类型是会做合并为一个类型,而type不允许重复定义同一个类型。
4、总结:
官方推荐interface,无法满足需求时使用type。
如果遇到联合类型和交叉类型时可以使用type来定义。
从定义的类型来看,type的使用可以涵盖interface的大部分场景。