接口可以在面向对象编程中表示行为的抽象,也可以描述对象的形状。 接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。 (接口中不能含有具体的实现逻辑)

接口可以被实现、被继承, type不能。

type可以写联合类型

接口可以描述对象

interface Obj {
  a: number,
  b: number
}

const sum = (obj: Obj): number => obj.a + obj.b

sum({a: 1, b:2})