概念:
type:类型别名,为类型创建一个新名称。它并不是一个类型,只是一个别名。
interface:接口,TS 设计出来主要用于定义对象类型,可以对对象的形状进行描述。
区别:
1.interface可以重复声明,type定义后不能重复声明
2.interface可以通过“extends”来继承接口,这样既高效又不用重新定义。而type只能通过&来实现类似于继承的功能
3.
type 能够表示非对象类型, 而 interface
则只能表示对象类型。
type
- 可以定义基本类型别名,如type StringType = string
- 可以声明联合类型,如 type paramType = number | string;
- 可以声明元组类型,如type arrType = [string, string, number]
定义对象时严谨的来说,type 是引用,而 interface
是定义。