Skip to content

Type vs Interface

typeinterface 的区别:

  1. interface 不能重命名基本类型,只能声明对象的形状;而 type 可以重命名基本类型。

  2. interface 名称始终出现在错误消息中;type 则不一定。

  3. 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;
};