共同点
- 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的话,就会报 重复定义 的警告,因此是无法实现 声明合并 的
