Type 类型别名
2025年03月14日
一、认识
二、问题
2.1 Interface 与 Type 的区别?
Type
可以描述一个对象或者函数, Type
还可以声明基本类型别名,联合类型, 元组等类型, Type
语句中还可以使用 typeof
获取实例的类型进行赋值。但是 Type
本身不能通过关键字扩展(extends
)或被类实现(implements
), 但可以借助交叉类型 &
来合并类型, 从而达到类似扩展的效果。 Type
则不支持 声明合并。两者并不是相互独立的, 也就是说 Interface
可以 extends Type
, Type
也可以与 Interface
类型交叉 。当需要表达联合类型、交叉类型、元组甚至简单基本类型的别名时,Type
会更灵活。
Interface
可以描述一个对象或者函数, Interface
不可以描述基本类型。 Interface
可以 extends
和 implement
。Interface
支持声明合并(可以多次声明同一接口并自动合并) 。两者并不是相互独立的, 也就是说 Interface
可以 extends Type
, Type
也可以与 Interface
类型交叉 。当只需要描述对象或函数的结构时,推荐使用 Interface
, 因为其扩展和声明合并特性更适合面向对象的设计。