1.接口可以指明一个变量里面能拥有哪些东西,使用interface声明;类型别名与接口类似,是为一个类型取一个新名字,使用type来声明。
//接口
interface aaa {
x: number;
y: string;
}
interface bbb {
(x: number, y: string): void;
}
//类型别名
type aaa = {
x: number;
y: string;
}
type bbb = {
(x: number, y: string) => void;
}
2.都可以扩展,interface使用“extends”扩展,type使用“&”扩展 。
3.type 可以声明基本类型别名,联合类型,元组等类型,可以使用typeof,而interface不可以, interface可以不断联合扩展,type不可以。