TS中type和interface的區(qū)別解析
在 TS 中,type 和 interface相似,都可以給類型命名并通過該名字來引用表示的類型。不過它們之間是存在一些差別的,我們在使用時也需要注意一些特殊場景。
概念:
type:類型別名,為類型創(chuàng)建一個新名稱。它并不是一個類型,只是一個別名。
type
關(guān)鍵字是聲明類型別名的關(guān)鍵字。它的語法如下:
type AliasName = Type;
- type:聲明類型別名的關(guān)鍵字
- AliasName:類型別名的名稱
- Type:類型別名關(guān)聯(lián)的具體類型
interface:接口,TS 設(shè)計出來主要用于定義對象類型,可以對對象的形狀進行描述。
通過關(guān)鍵字 interface
可以定義一個接口類型。它能合并眾多類型聲明至一個類型聲明。
接口聲明只存在于編譯階段,在編譯后生成的 JS 代碼中不包含任何接口代碼。
語法如下:
interface InterfaceName { TypeMember; TypeMember; ... }
- interface:定義接口的關(guān)鍵字
- InterfaceName:接口名,首字母需要大寫
- TypeMember:接口的類型成員
區(qū)別:
1.interface可以重復聲明,type定義后不能重復聲明
2.interface可以通過“extends”來繼承接口,這樣既高效又不用重新定義。而type只能通過&來實現(xiàn)類似于繼承的功能
3.
type 能夠表示非對象類型, 而 interface
則只能表示對象類型。
type
- 可以定義基本類型別名,如type StringType = string
- 可以聲明聯(lián)合類型,如 type paramType = number | string;
- 可以聲明元組類型,如type arrType = [string, string, number]
定義對象時嚴謹?shù)膩碚f,type 是引用,而 interface
是定義。
到此這篇關(guān)于TS中type和interface的區(qū)別的文章就介紹到這了,更多相關(guān)TS type和interface區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
多個jquery.datatable共存,checkbox全選異常的快速解決方法
這篇文章主要介紹了多個jquery.datatable共存,checkbox全選異常的快速解決方法。需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12javascript實現(xiàn)仿銀行密碼輸入框效果的代碼
這篇文章通過實例代碼給大家介紹了javascript實現(xiàn)仿銀行密碼輸入框效果,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2007-12-12JavaScript自定義插件實現(xiàn)tabs切換功能
這篇文章主要為大家詳細介紹了JavaScript自定義插件實現(xiàn)tabs切換功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-04-04