【TypeScript】interface和type的本质区别?

不好好看官方文档,在平时用的时会感觉typeScriptinterfacetype的作用好像都一样的,但其实也是有明显的差别的!面试问的时候,大脑会突然,呀一般就直接那样用就行了,到底是什么区别呢?。。。。无法说出关键点,本文主要以600字精确大概说明他们的区别,后续还会更新。

1、从定义类型来说

type关键字

可以定义类型别名,可以表示基本类型string、number、undefined、null、boolean、symbol)、对象类型联合类型元组和交集

interface关键字

可以定义描述对象类型

2、从继承来说

interfacetype定义的类型都可以继承。type定义的类型可以继承interface,interface定义的类型也可以继承type。

3、从区别来说

  • type可以定义基本类型,但interface不可以。
  • interface重复定义类型是会做合并为一个类型,而type不允许重复定义同一个类型。

4、总结:

官方推荐interface,无法满足需求时使用type
如果遇到联合类型和交叉类型时可以使用type来定义。
从定义的类型来看,type的使用可以涵盖interface的大部分场景。

你可能感兴趣的:(html5,ts,前端,面试)