相同点
都可以描述一个对象或者函数
interface
1 | interface User { |
type
1 | type User = { |
语法上 type 用等于号,interface 直接跟 class 一样使用。
都允许扩展
interface 和 type 都可以拓展,并且不是互相独立的,也就是说 interface 可以 extends type,type 也可以 extends interface。虽然效果差不多,但是两者语法不同。
interface extends interface
1 | interface Name { |
type extends type
1 | type Name = { |
interface extends type
1 | type Name = { |
type extends interface
1 | interface Name { |
扩展的语法也不一样,type 使用&进行扩展,interface 使用 extends 进行扩展
不同点
type 可以而 interface 不行
type 可以声明基本类型别名,联合类型,交叉类型,元组等类型
1 | // 基本类型别名 |
interface 可以而 type 不行
interface 能够声明合并
1 | interface User { |