type 和 interface有啥区别嘛

来源:3-9 接口 - 接口初探

慕斯3049357

2019-05-05

type IPeople = {
  name: string;
  age: number;
}

interface IPeople {
  name: string;
  age: number;
}
写回答

1回答

ustbhuangyi

2019-05-05

type 是定义类型别名的关键字,通常用于定义联合类型,交叉类型,原始类型等等,比如课程中 ts-axios 中对 Method 类型定义就用了 type 关键字,而接口不可以。

接口可以合并,比如定义多个同名接口它们会合并到一个,而 type 不可以。

因此,通常我们描述对象的单个数据结构可以用 interface,如果描述的对象有多种数据结构的可能,我们可以定义多个接口用联合类型,然后用 type 给这个联合类型定义一个别名。

举个例子:

interface Dog {
    wong()
}

interface Cat {
    miao()
}

 type Pet = Dog | Cat



2
1
慕斯3049357
非常感谢!
2019-05-05
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程