TS中type和interface的區(qū)別解析
在 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)文章
學(xué)習(xí)JavaScript設(shè)計(jì)模式之模板方法模式
這篇文章主要為大家介紹了JavaScript設(shè)計(jì)模式中的模板方法模式,對(duì)JavaScript設(shè)計(jì)模式感興趣的小伙伴們可以參考一下2016-01-01js實(shí)現(xiàn)點(diǎn)小圖看大圖效果的思路及示例代碼
點(diǎn)小圖看大圖的效果想必很多的朋友都有見到過吧,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2013-10-10多個(gè)jquery.datatable共存,checkbox全選異常的快速解決方法
這篇文章主要介紹了多個(gè)jquery.datatable共存,checkbox全選異常的快速解決方法。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12一個(gè)用js實(shí)現(xiàn)的頁內(nèi)搜索代碼
一個(gè)用js實(shí)現(xiàn)的頁內(nèi)搜索代碼...2007-05-05非主流的textarea自增長(zhǎng)實(shí)現(xiàn)js代碼
今天稍微研究了下textarea隨輸入內(nèi)容自動(dòng)增長(zhǎng)的功能,通過google參考了一些實(shí)現(xiàn)方式2011-12-12javascript實(shí)現(xiàn)仿銀行密碼輸入框效果的代碼
這篇文章通過實(shí)例代碼給大家介紹了javascript實(shí)現(xiàn)仿銀行密碼輸入框效果,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2007-12-12JavaScript自定義插件實(shí)現(xiàn)tabs切換功能
這篇文章主要為大家詳細(xì)介紹了JavaScript自定義插件實(shí)現(xiàn)tabs切換功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04