订阅博客
收藏博客
微博分享
QQ空间分享

日产奇骏,实践TypeScript——TypeScript中Interface与Type的差异,中科曙光

频道:娱乐消息 标签:develop奥迪rs3 时间:2020年02月14日 浏览:200次 评论:0条

概念

接日产奇骏,实践TypeScript——TypeScript中Interface与Type的差异,中科曙光口(Interface)

接口主要用于类型检查,它只是一个结构契约,定义了具有相似的名称和类刀剑如梦型的对象结构。除此之外,菜心接口还可以定义方法和事件。

类型别名(Type Alias)

不同于interface只能定义对象类型,type声明还可以定义基础类型、联合七叶一枝花类型或交叉类型。胃酸过多

差异点

1. 定义类型范围

int天辉发卡erface只能定任汇川桃色义对象类型。

而type声明可以声明任何类型,包括基础类型、联合类型或交叉类型。

  • 基本类型
type person = string
  • 联日产奇骏,实践TypeScript——TypeScript中Interface与Type的差异,中科曙光合类型
interface Dog {
name: string;
}
interface Cat {
age: number;
}
typ青蒿素e animal = Dog | Cat
  • 元祖
interface Dog {
name: string;
}
interface Cat {
age: number;
}
type animal = [D家法打屁股og, Cat]

2. 扩展性

接口可以extends、implements,从而扩展多个接口或类。类型没有扩展功能。

  • interface extends interface
interface Person {
name: string
}
interface User extends Person {
age: number大脑
}
  • interface extends type
type Person = {
name: string
}
interface User extends Person {
age: number
}

但是type可以使用交叉类型&,来使成员类型合并

  • type & type
type Person = {
name: string
}
type User = Person & { age: number }
  • type & i信者无敌nterface
inte江西科技师范大学rface Person {
name: string
}
type User = {
age: n日产奇骏,实践TypeScript——TypeScript中Interface与Type的差异,中科曙光umber
} &日产奇骏,实践TypeScript——TypeScript中Interface与Type的差异,中科曙光 Person

3. 合并声明

定义两个相同名称的接口会合并声明。

定红烧大黄鱼义两个同名的type会出现异常。

interface Person {
name: string
}
interface Person {
age: number
}
// 合并为:
interface Person {
name: string
age: number
}

4. typeof

type可以使用typeof获取实例类型

l佛山地铁2号线e泡菜t div = document.createElement('div');
type B = 柳下惠typeof div儿子射死我

分享文章

链接文章

https://github.com/staven630/blog/blob/master/%E5%A日产奇骏,实践TypeScript——TypeScript中Interface与Type的差异,中科曙光E%9E%E8%B7%B5TypeScript/%E5偷情视频%AE%9E%E8%B7%B5TypeScript%E2%80%94%E2%80%94日产奇骏,实践TypeScript——TypeScript中Interface与Type的差异,中科曙光TypeScript%E4%B8%ADI日产奇骏,实践TypeScript——TypeScript中Interface与Type的差异,中科曙光nterface%E4%B天王星8%8EType%E7%9A%84%E5%8C%BA%E5%88%AB黄可.md