精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用 TypeScript 常見困惑:interface 和 type 的區別是什么?

開發 前端
當我們使用 TypeScript 時,就會用到 interface 和 type,平時感覺他們用法好像是一樣的,沒啥區別,都能很好的使用,所以也很少去真正的理解它們之間到底有啥區別。

[[406901]]

當我們使用 TypeScript 時,就會用到 interface 和 type,平時感覺他們用法好像是一樣的,沒啥區別,都能很好的使用,所以也很少去真正的理解它們之間到底有啥區別。我們開發過經常或這么來定義類型:

  1. interface Point { 
  2.     x: number; 
  3.     y: number; 

當我們使用 TypeScript 時,就會用到 `interface` 和 `type`,平時感覺他們用法好像是一樣的,沒啥區別,都能很好的使用,所以也很少去真正的理解它們之間到底有啥區別。我們開發過經常或這么來定義類型:

  1. interface Point { x: number; y: number; } 

或者這樣定義:

  1. type Point = { x: number; y: number; }; 
  1.  `interface` 和 `type`之間的差異不僅僅是次要語法聲明。那么,今天我們就來看看這兩家伙之間存在啥不可告人的秘密。 
  2.   
  3.   
  4. ### 類型和類型別名 
  5.   
  6.   
  7. TypeScript 有 `boolean`、`number`、`string` 等基本類型。如果我們想聲明高級類型,我們就需要使用**類型別名**。 
  8.   
  9. 類型別名指的是為類型創建新名稱。**需要注意的是**,我們并沒有定義一個新類型。使用`type`關鍵字可能會讓我們覺得是創建一個新類型,但我們只是給一個類型一個新名稱。 
  10.  
  11. 所以我們所以 type 時,不是在創建新的類別,而是定義類型的一個別名而已。 
  12.  
  13. ### 接口 
  14.  
  15. 與 `type`相反,接口僅限于對象類型。它們是描述對象及其屬性的一種方式。類型別名聲明可用于任何基元類型、聯合或交集。**在這方面,接口被限制為對象類型**。 
  16.  
  17.  
  18.  
  19. ### interface 和 type 的相似之處 
  20.  
  21. 在討論它們的區別之前,我們先來看看它們的相似之處。 
  22.  

或者這樣定義:

  1. type Point = { 
  2.     x: number; 
  3.     y: number; 
  4. }; 

interface 和 type之間的差異不僅僅是次要語法聲明。那么,今天我們就來看看這兩家伙之間存在啥不可告人的秘密。

類型和類型別名

TypeScript 有 boolean、number、string 等基本類型。如果我們想聲明高級類型,我們就需要使用類型別名。

類型別名指的是為類型創建新名稱。需要注意的是,我們并沒有定義一個新類型。使用type關鍵字可能會讓我們覺得是創建一個新類型,但我們只是給一個類型一個新名稱。

所以我們所以 type 時,不是在創建新的類別,而是定義類型的一個別名而已。

接口

與 type相反,接口僅限于對象類型。它們是描述對象及其屬性的一種方式。類型別名聲明可用于任何基元類型、聯合或交集。在這方面,接口被限制為對象類型。

interface 和 type 的相似之處

在討論它們的區別之前,我們先來看看它們的相似之處。

兩者都可以被繼承

interface 和 type 都可以繼承。另一個值得注意的是,接口和類型別名并不互斥。類型別名可以繼承接口,反之亦然。

對于一個接口,繼承另一個接口

  1. interface PartialPointX { x: number; } 
  2. interface Point extends PartialPointX { y: number; } 

或者,繼承一個類型

  1. type PartialPointX = { x: number; }; 
  2. interface Point extends PartialPointX { y: number; } 

類型繼承另一個類型:

  1. type PartialPointX = { x: number; }; 
  2. type Point = PartialPointX & { y: number; }; 

或者,繼承一個接口:

  1. interface PartialPointX { x: number; } 
  2. type Point = PartialPointX & { y: number; }; 

實現

類可以實現接口以及類型(TS 2.7+)。但是,類不能實現聯合類型。

  1. interface Point { 
  2.  x: number; 
  3.  y: number; 
  4.  
  5. class SomePoint implements Point { 
  6.  x = 1; 
  7.  y = 2; 
  8.  
  9. type AnotherPoint = { 
  10.  x: number; 
  11.  y: number; 
  12. }; 
  13.  
  14. class SomePoint2 implements AnotherPoint { 
  15.  x = 1; 
  16.  y = 2; 
  17.  
  18. type PartialPoint = { x: number; } | { y: number; }; 
  19.  
  20. // Following will throw an error 
  21. class SomePartialPoint implements PartialPoint { 
  22.  x = 1; 
  23.  y = 2; 

interface 和 type 的區別

并集和交集類型

雖然接口可以被擴展和合并,但它們不能以聯合和交集的形式組合在一起。類型可以使用聯合和交集操作符來形成新的類型。

  1. // object 
  2. type PartialPointX = { x: number; }; 
  3. type PartialPointY = { y: number; }; 
  4.  
  5. // 并集 
  6. type PartialPoint = PartialPointX | PartialPointY; 
  7.  
  8. // 交集 
  9. type PartialPoint = PartialPointX & PartialPointY; 

聲明合并

TypeScript編譯器合并兩個或多個具有相同名稱的接口。這不適用于類型。如果我們嘗試創建具有相同名稱但不同的屬性的兩種類型,則TypeScript編譯器將拋出錯誤。

  1. // These two declarations become: 
  2. // interface Point { x: number; y: number; } 
  3. interface Point { x: number; } 
  4. interface Point { y: number; } 
  5.  
  6. const point: Point = { x: 1, y: 2 }; 

元組類型

元組(鍵值對)只能通過type關鍵字進行定義。

  1. type Point = [x: number, y: number]; 

沒有辦法使用接口聲明元組。不過,我們可以在接口內部使用元組

  1. interface Point { 
  2.   coordinates: [number, number] 

我們應該使用哪一個?

一般來說,接口和類型都非常相似。

對于庫或第三方類型定義中的公共API定義,應使用接口來提供聲明合并功能。除此之外,我們喜歡用哪個就用哪個,但是在整個代碼庫中應該要保持一致性。

~完,我是小智。

作者:SARANSH KATARIA

譯者:前端小智

來源:wisdomgeek

原文:https://www.wisdomgeek.com/development/web-development/typescript/typescript-the-difference-between-interface-and-type/

 

責任編輯:姜華 來源: 大遷世界
相關推薦

2022-09-02 09:02:44

TypeInterface

2022-05-06 09:21:21

TypeScriptinterfacetype

2022-11-15 10:03:34

2023-10-23 11:07:37

HTTPRPC

2025-02-06 08:44:11

MySQLEXISTSIN

2016-03-21 10:40:53

RDDSpark SQL數據集

2024-12-30 07:20:00

Redis數據庫MySQL

2021-08-05 08:32:45

TypeScript InterfaceType

2015-02-26 10:29:41

Google百度

2021-10-27 08:54:11

Pythonencodeencoding

2018-05-21 21:26:59

Apache HiveHbaseSQL

2017-11-21 22:49:10

2022-09-03 08:03:14

UbuntuDebian

2020-09-18 15:10:51

Web前端技術

2023-10-24 09:07:14

CookieSessionHTTP

2023-08-29 09:50:42

Unix shellLinux

2022-11-18 16:10:03

云計算虛擬機

2012-12-10 09:44:04

路由器本地回路

2021-02-17 00:30:41

機器學習深度學習人工智能

2022-03-13 18:53:31

interfacetypeTypeScript
點贊
收藏

51CTO技術棧公眾號

久久国产成人精品| yy6080久久伦理一区二区| 国产999精品久久久久久| 97精品免费视频| 亚洲精品国产一区黑色丝袜| 国内精品伊人| 亚洲成人av一区二区| 日本高清久久一区二区三区| 国产精品伦理一区| 亚洲一区激情| 久久精品亚洲94久久精品| 精品国产免费久久久久久尖叫| 91在线看视频| 日本在线成人| 欧美视频不卡中文| 中文字幕欧美人与畜| 久久精品无码av| 欧美国产一级| 日韩黄色av网站| 国产一级片中文字幕| 波多野结衣久久精品| 亚洲精品乱码久久久久久久久 | 欧美另类老女人| 天天躁日日躁aaaxxⅹ| 伊人久久大香线蕉av超碰| 在线区一区二视频| 草草视频在线免费观看| 在线观看h片| 不卡影院免费观看| 久久99久久亚洲国产| 免费看污片的网站| 成人自拍在线| 欧美福利电影网| 国产女女做受ⅹxx高潮| 国产在线xxx| 中文字幕亚洲在| 日韩精品伦理第一区| 神马午夜在线观看| 99在线|亚洲一区二区| 日韩欧美久久一区| 蜜臀一区二区三区精品免费视频| 色老头在线一区二区三区| 一区二区三区欧美日| 一区二区三区国| 高清日韩av电影| 久久婷婷国产综合精品青草| 日本精品一区二区三区在线| 精品无码av在线| 你懂的一区二区| 美女黄色丝袜一区| 最新一区二区三区| 99久久久国产精品美女| 中文字幕亚洲综合久久| 永久免费毛片在线观看| 精品中文字幕一区二区三区av| 亚洲国产欧美在线成人app | 国产欧美不卡| 91精品成人久久| 久久精品国产av一区二区三区| 女人色偷偷aa久久天堂| 欧美裸身视频免费观看| 欧美成人三级在线观看| 欧美日韩国产免费观看| 久久久久久久久网站| 日本三级免费看| 99亚洲伊人久久精品影院红桃| 性欧美xxxx视频在线观看| 国内免费精品视频| 性欧美xxxx大乳国产app| 日本久久久久久久| 亚洲视频在线观看一区二区| 久久97超碰色| 99理论电影网| 水莓100国产免费av在线播放| www激情久久| 日韩精品一区二区三区丰满| 日本中文字幕视频在线| 亚洲欧美日韩成人高清在线一区| 在线观看av的网址| 高清毛片在线观看| 欧美最猛性xxxxx直播| 午夜xxxxx| jizz性欧美2| 亚洲老板91色精品久久| 中国1级黄色片| 欧美/亚洲一区| 97香蕉超级碰碰久久免费软件| 久久黄色精品视频| 麻豆视频观看网址久久| 91日韩久久| 天天干天天干天天| 青青草成人在线观看| 亚洲综合中文字幕在线观看| 香蕉视频911| 国产精品理论在线观看| 国产精品国三级国产av| 精品3atv在线视频| 91精品欧美一区二区三区综合在| 精品无码av一区二区三区| 中文字幕中文字幕精品| 久久久黄色av| 久久国产视频一区| 国产一区二区视频在线| 久久久水蜜桃| 羞羞污视频在线观看| 日本高清无吗v一区| 性生活在线视频| 欧洲grand老妇人| 久久久免费av| ,一级淫片a看免费| 91亚洲精华国产精华精华液| 国产人妻互换一区二区| 日韩av中字| 欧美成人猛片aaaaaaa| 免费网站在线高清观看| 99精品福利视频| 91热精品视频| 丁香在线视频| 动漫精品一区二区| 久久无码人妻一区二区三区| 加勒比久久综合| 亚州欧美日韩中文视频| 国产福利小视频| 国产在线观看免费一区| 欧美日韩在线观看一区| 丰满的护士2在线观看高清| 欧美日韩国产片| 羞羞的视频在线| 在线观看欧美理论a影院| 欧美黑人性视频| 久久久久久久9999| 老司机免费视频一区二区三区| 久久久精品动漫| 久久亚洲资源| 精品嫩草影院久久| 色欲一区二区三区精品a片| 天堂一区二区在线免费观看| 好吊色欧美一区二区三区| 99久久精品免费观看国产| 欧美日精品一区视频| 日韩丰满少妇无码内射| 久久中文欧美| 欧美国产综合视频| 自拍一区在线观看| 欧美亚洲日本国产| 人人妻人人澡人人爽人人精品| 伊人成人网在线看| 成人动漫在线视频| 七七成人影院| 精品国产第一区二区三区观看体验 | 9999精品视频| 久久精品视频在线播放| 亚洲网站免费观看| 国产精品乱码人人做人人爱 | 久久99国产精品二区高清软件| 国产亚洲一区二区在线| 丰满人妻一区二区三区四区| 欧美国产日本视频| 一道本视频在线观看| 日韩精品欧美激情一区二区| 91精品国产综合久久久久久蜜臀 | 亚洲精品国偷拍自产在线观看蜜桃 | 丝瓜av网站精品一区二区| 日本一区二区三区视频在线观看| av亚洲一区二区三区| 最近更新的2019中文字幕| fc2ppv在线播放| 久久99最新地址| 不卡中文字幕在线| 日韩欧美中文字幕在线视频| 欧美激情亚洲另类| 四虎在线视频免费观看| 欧美性猛交xxxx免费看漫画| 在线观看国产精品一区| 老司机精品视频一区二区三区| 公共露出暴露狂另类av| 成人免费直播在线| 日韩**中文字幕毛片| 天堂中文8资源在线8| 精品国产乱码久久久久久蜜臀| 日韩欧美国产亚洲| 欧美激情一区在线观看| 91亚洲一区二区| 在线高清一区| 五月天亚洲综合| 91精品尤物| 国产精品7m视频| 最新日本在线观看| 日韩精品中文字幕久久臀| 国产精品一区二区三区四| 日本一区二区成人| 香蕉视频免费网站| 视频一区视频二区中文字幕| 男女爱爱视频网站| 午夜欧洲一区| 亚洲一区二区三区xxx视频| 国产理论在线| 久久精品国产96久久久香蕉| 欧美 日韩 国产 在线| 欧美主播一区二区三区| 久久综合综合久久| 国产精品美日韩| 久久久午夜精品福利内容| 91精品99| 久久青青草综合| 国产亚洲字幕| 国产成人在线精品| 成人在线免费观看黄色| 一区二区三区 在线观看视| 性猛交富婆╳xxx乱大交天津| 亚洲欧洲www| 伊人国产在线视频| 亚洲视频1区| 久久av高潮av| 亚洲**毛片| 国产精品视频久久| 日韩精品av| 欧美极品在线视频| 日本暖暖在线视频| 亚洲欧美综合精品久久成人| 亚洲乱码精品久久久久..| 欧美日韩精品一区二区在线播放 | 国产小视频在线| 精品成人一区二区| 国产又粗又大又爽| 欧洲一区在线观看| 国产性生活视频| 午夜精品久久久久久久久| 国产稀缺精品盗摄盗拍| 中文在线一区二区| 国产精品毛片一区二区| 成人av午夜影院| 丰满人妻一区二区三区53视频| 看片的网站亚洲| 一本久道中文无码字幕av| 99精品福利视频| 三上悠亚久久精品| 影音先锋日韩资源| 国产又粗又猛又爽又黄的网站| 天天射成人网| 一区二区三区四区| 欧美美女一区| 亚洲精品二区| 成人情趣视频| 91亚洲精品一区二区| 福利一区二区免费视频| 日韩av123| 日韩精品影院| 国产精品精品久久久| 成人开心激情| 国产精品亚洲网站| 粉嫩av国产一区二区三区| 91麻豆国产语对白在线观看| 日本免费成人| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 国产欧美一区二区精品性| 成人免费网站黄| 国产亚洲午夜高清国产拍精品| 97人妻精品一区二区免费| 国产欧美一区二区精品婷婷| 亚洲精品国产精品国自| 国产精品国产三级国产有无不卡| 久久成人小视频| 亚洲免费观看高清完整版在线观看 | 丰满人妻一区二区三区53视频| 国产精一区二区三区| 波多野吉衣在线视频| 不卡av免费在线观看| 精品少妇人妻一区二区黑料社区 | 免费看国产精品一二区视频| 综合色就爱涩涩涩综合婷婷| 色姑娘综合av| 国产精品国产一区| avav在线播放| 国产精品一区亚洲| 国产又粗又长又大的视频| 国产一区二区三区在线观看免费视频 | 亚洲天堂一区在线观看| 欧美中文一区二区三区| 国产精品久久综合青草亚洲AV| 日韩欧美在线综合网| 偷拍精品一区二区三区| 国产一区二区日韩| av片哪里在线观看| 欧美一区二区.| 欧美在线一级| 国内成+人亚洲| 日韩黄色三级| 国产一区不卡在线观看| 欧美限制电影| 国产成人在线小视频| 久久亚洲国产精品一区二区| 日韩av影视大全| 久久久噜噜噜久噜久久综合| 午夜精品福利在线视频| 中文字幕乱码日本亚洲一区二区| 国产a免费视频| 色综合久久综合网| 精品国产av 无码一区二区三区 | av福利在线播放| 欧美激情在线有限公司| 欧美日韩五区| 欧美在线精品免播放器视频| 日本成人在线网站| 精品欧美一区二区久久久伦| 国产精品国产一区| 黄色一级一级片| 国产凹凸在线观看一区二区| 丁香激情五月少妇| 亚洲福利一二三区| 一级黄色录像大片| 国产视频在线一区二区| 尤物视频在线看| 国产精品视频xxxx| 国产亚洲一区二区三区啪| 免费高清一区二区三区| 极品少妇一区二区三区精品视频| 欧美狂猛xxxxx乱大交3| 亚洲国产精品久久人人爱| 国产精品一级二级| 中文日韩在线视频| 亚洲最新无码中文字幕久久| 国产精品二区在线观看| 羞羞答答成人影院www| 久久久久久久片| 久久这里只有精品视频网| 精品少妇theporn| 日韩欧美久久一区| 26uuu亚洲电影在线观看| 成人免费黄色网| 日韩一二三区在线观看| 一区二区三区四区欧美日韩| 久久亚洲国产精品一区二区| 37p粉嫩大胆色噜噜噜| 五月婷婷激情综合| 韩国av在线免费观看| 日韩福利视频在线观看| 欧美大片黄色| 不卡的av一区| 亚洲黄色成人| 亚洲自拍偷拍精品| 五月婷婷综合在线| 亚洲欧美综合一区二区| 97人人做人人爱| 天堂日韩电影| 农村妇女精品一二区| 久久久久久久综合| 日韩黄色片网站| 亚洲人成网站在线播| 欧美性片在线观看| 亚洲蜜桃在线| 国产在线播放一区三区四| 日韩成人短视频| 日韩免费观看高清完整版在线观看| 亚洲图区一区| 国产精品一区二区三区观看| 亚洲高清自拍| 国产精品第七页| 日韩一区在线看| 99在线小视频| 欧美精品激情视频| 欧美调教视频| 欧美 日韩 国产 激情| 国产精品女同互慰在线看| 国产精品无码久久av| 久久人人爽人人爽人人片av高清| 久9re热视频这里只有精品| av免费播放网址| 欧美激情一二三区| 99久久久国产精品无码网爆| 久久91亚洲人成电影网站| 精品国产影院| 五月天婷婷激情视频| 亚洲免费观看高清完整版在线观看熊| 亚洲国产综合网| 欧美专区国产专区| 久久激情电影| 日本少妇xxxx软件| 色婷婷久久一区二区三区麻豆| 欧美13一16娇小xxxx| av蓝导航精品导航| 久久黄色网页| 暗呦丨小u女国产精品| 亚洲成av人影院在线观看| 欧美性片在线观看| 国产成人一区二区三区别| 久久人人爽爽爽人久久久| 国产免费av电影| 欧美一级免费视频| 欧美a级在线| japanese中文字幕| 欧美一级专区免费大片| 午夜欧美激情| 成人午夜免费剧场| 久久蜜桃香蕉精品一区二区三区| 91欧美日韩麻豆精品| 2019国产精品自在线拍国产不卡| 99国产精品免费视频观看| 9.1成人看片免费版| 日韩欧美国产精品一区|