第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

TypeScript 類型別名

本節(jié)介紹的類型別名,就是通過關(guān)鍵字 type 給類型起個別名,類型別名較多應用于聯(lián)合類型、交叉類型這種復合類型。

1. 慕課解釋

類型別名會給類型起個新名字。類型別名有時和接口很像,但是可以作用于原始值,聯(lián)合類型,元組以及其它任何你需要手寫的類型。

用關(guān)鍵字 type 定義類型別名。

2. 舉例說明

類型別名不會新建一個類型,而是創(chuàng)建一個新名字來引用此類型。

先看下面幾個例子,

原始類型:

type brand = string
type used = true | false

const str: brand = 'imooc'
const state: used = true

聯(lián)合類型:

type month = string | number

const currentMonth: month = 'February'
const nextMonth: month = 3

交叉類型:

interface Admin {
  id: number,
  administrator: string,
  timestamp: string
}

interface User {
  id: number,
  groups: number[],
  createLog: (id: number) => void,
  timestamp: number
}

type T = Admin & User

同接口一樣,類型別名也可以是泛型:

type Tree<T, U> = {
  left: T,
  right: U
}

3. 接口 vs. 類型別名

類型別名看起來和接口非常類似,區(qū)別之處在于:

  • 接口可以實現(xiàn) extends 和 implements,類型別名不行。
  • 類型別名并不會創(chuàng)建新類型,是對原有類型的引用,而接口會定義一個新類型。
  • 接口只能用于定義對象類型,而類型別名的聲明方式除了對象之外還可以定義交叉、聯(lián)合、原始類型等。

類型別名是最初 TypeScript 做類型約束的主要形式,后來引入接口之后,TypeScript 推薦我們盡可能的使用接口來規(guī)范我們的代碼。

4. 小結(jié)

類型別名在定義交叉類型、聯(lián)合類型時特別好用,要注意類型別名與接口的區(qū)別。