Appearance
Type vs Interface
type
和 interface
的区别:
interface
不能重命名基本类型,只能声明对象的形状;而type
可以重命名基本类型。interface
名称始终出现在错误消息中;type
则不一定。interface
能参与接口声明合并;type
则不能。
Examples
ts
// 声明 Person 类型的形状(shape)
interface Person {
name: string;
}
// interface 可以重复声明并且合并
interface Person {
age: number;
}
ts
// 为基本类型起别名
type UserId = string;
// Type 同样可以用于声明 Person 类型的形状(shape)
type Person = {
name: string;
};