共同点

  • type和interface都可以描述对象和函数
  • 都可以实现所谓的”继承”,只不过type是通过&实现,interaface是通过extends实现

    不同点

    type可以做到的,interface做不到

  • type可以定义别名, type type2 = type1

  • type可以通过typeof进行定义 type myType1 = typeof obj;
  • type 可以定义联合类型,type unionType = type1 | type2
  • type 可以定义元祖类型, type tuple = [type1, type2]

    interface可以做到,但是type不可以做到的事情

    interface可以 声明合并,示例如下: ```typescript interface test { name: string } interface test { age: number }

/ test实际为 { name: string age: number } / ```
这种情况下,如果是type的话,就会报 重复定义 的警告,因此是无法实现 声明合并