欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

TS中type和interface的區(qū)別解析

 更新時(shí)間:2023年07月06日 11:46:59   作者:矮袋鼠和貓  
對(duì)于type來說,更多的是對(duì)類型的一種復(fù)用,比如在項(xiàng)目中需要用到一些比較復(fù)雜的或者書寫起來很長(zhǎng)的類型,而對(duì)于 interface來說,它是正兒八經(jīng)的用來定義接口類型(約束數(shù)類型和屬性)的,且接口類型是支持繼承和聲明合并的,感興趣的朋友跟隨小編一起看看吧

在 TS 中,type 和 interface相似,都可以給類型命名并通過該名字來引用表示的類型。不過它們之間是存在一些差別的,我們?cè)谑褂脮r(shí)也需要注意一些特殊場(chǎng)景。

概念:

type:類型別名,為類型創(chuàng)建一個(gè)新名稱。它并不是一個(gè)類型,只是一個(gè)別名。

type關(guān)鍵字是聲明類型別名的關(guān)鍵字。它的語法如下:

type AliasName = Type;
  • type:聲明類型別名的關(guān)鍵字
  • AliasName:類型別名的名稱
  • Type:類型別名關(guān)聯(lián)的具體類型

interface:接口,TS 設(shè)計(jì)出來主要用于定義對(duì)象類型,可以對(duì)對(duì)象的形狀進(jìn)行描述。

通過關(guān)鍵字 interface可以定義一個(gè)接口類型。它能合并眾多類型聲明至一個(gè)類型聲明。

接口聲明只存在于編譯階段,在編譯后生成的 JS 代碼中不包含任何接口代碼。

語法如下:

interface InterfaceName {
  TypeMember;
  TypeMember;
  ...
}
  • interface:定義接口的關(guān)鍵字
  • InterfaceName:接口名,首字母需要大寫
  • TypeMember:接口的類型成員

區(qū)別:

1.interface可以重復(fù)聲明,type定義后不能重復(fù)聲明

 2.interface可以通過“extends”來繼承接口,這樣既高效又不用重新定義。而type只能通過&來實(shí)現(xiàn)類似于繼承的功能

3.

type 能夠表示非對(duì)象類型, 而 interface 則只能表示對(duì)象類型。

type

  • 可以定義基本類型別名,如type StringType = string
  • 可以聲明聯(lián)合類型,如 type paramType = number | string;
  • 可以聲明元組類型,如type arrType = [string, string, number]

定義對(duì)象時(shí)嚴(yán)謹(jǐn)?shù)膩碚f,type 是引用,而 interface是定義。

到此這篇關(guān)于TS中type和interface的區(qū)別的文章就介紹到這了,更多相關(guān)TS type和interface區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論