精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日本一区二区精品视频| 精品夜色国产国偷在线| 亚洲黄色网址在线观看| 啊啊啊一区二区| 日本黄色三级视频| 美日韩精品视频| 亚洲性生活视频在线观看| 黄色小视频免费网站| 日日夜夜天天综合入口| av爱爱亚洲一区| 国产精品久久久久久久9999| 日韩va亚洲va欧美va清高| 中文字幕久久精品一区二区| 日韩欧美在线观看| 中文字幕中文字幕在线中心一区 | 亚洲欧美综合久久久| 日韩精品一区二区三区视频| 日韩中文字幕二区| bt在线麻豆视频| 久久精品视频一区二区三区| 91精品国自产在线观看 | h片在线免费观看| av在线播放成人| 成人国产在线激情| 国内自拍视频在线播放| 欧美伊人久久| 在线观看国产欧美| 精品一区二区视频在线观看| 四虎影视成人精品国库在线观看| 欧美性生交大片免费| 免费在线精品视频| 国产视频精选在线| 成人av电影在线网| 96国产粉嫩美女| 丰满人妻一区二区三区四区| 伊人成人在线视频| 日韩在线视频中文字幕| v8888av| 91精品啪在线观看国产手机| 91麻豆精品国产91久久久久 | 国产一级二级三级| 日韩伦理视频| 亚洲欧美中文日韩在线| 日本一区二区在线免费观看| 亚洲国产精品免费视频| 5566中文字幕一区二区电影| 精品999在线| 欧美××××黑人××性爽 | 欧美精品一区在线播放| 国产一二三av| 日本午夜一区| 在线视频日韩精品| 日本免费www| 成人av动漫在线观看| 精品亚洲一区二区| 亚洲狠狠婷婷综合久久久久图片| 久久亚洲黄色| 亚洲精品久久久一区二区三区 | 日韩精品欧美大片| 亚洲国产精品大全| 中文成人无字幕乱码精品区| 秋霞影视一区二区三区| 日韩电影大全免费观看2023年上 | 国产精品久久久99| 水蜜桃亚洲精品| wwwww在线观看免费视频| 久久精品无码一区二区三区| 日韩欧美亚洲日产国| 国产高清美女一级毛片久久| 国产精品欧美一区二区三区| 在线成人性视频| 成人免费在线| 亚洲国产精品久久久久秋霞影院| 国产伦精品一区二区三区四区视频_ | 久久亚洲精精品中文字幕| 日韩一区二区三| 涩视频在线观看| 五月国产精品| 中文字幕成人精品久久不卡| 国产精品国产精品88| 欧美日韩久久| 日本不卡免费高清视频| 中文字幕在线观看1| 国内精品写真在线观看| 91中文字精品一区二区| 亚洲精品一区二区口爆| 91蝌蚪porny| 亚洲三区视频| 日本成人不卡| 色综合天天综合色综合av | 国产亚洲色婷婷久久99精品| 一二三区精品| 国产精品日韩久久久久| 999久久久久| 26uuu精品一区二区在线观看| 五月天综合网| 国产高清在线a视频大全| 色欧美日韩亚洲| www.亚洲自拍| 四虎5151久久欧美毛片| 精品国产欧美一区二区三区成人| 国产一级一片免费播放放a| 久久一区中文字幕| 亚洲sss综合天堂久久| 亚洲欧洲视频在线观看| 中文字幕一区在线观看视频| 国产伦精品一区二区三区四区视频_ | 亚洲天天综合| 欧美在线观看视频| 国产人妻精品一区二区三| 91啦中文在线观看| 成人高清dvd| 成人精品三级| 亚洲精品美女免费| 日本老熟俱乐部h0930| 日韩黄色免费网站| 国模精品娜娜一二三区| 成人影欧美片| 欧美日韩国产另类一区| 极品人妻一区二区三区| 午夜日韩激情| 国产日韩欧美91| 精品99又大又爽又硬少妇毛片| 一区二区成人在线视频| 亚洲欧美日韩一级| 网友自拍一区| 7777kkkk成人观看| 亚洲国产一二三区| 亚洲品质自拍视频网站| 91香蕉视频导航| 亚洲桃色综合影院| 97精品在线观看| 国产激情视频在线播放| 国产精品免费丝袜| 亚洲成人福利在线观看| 蜜乳av综合| 91精品国产高清| 噜噜噜久久,亚洲精品国产品| 亚洲同性gay激情无套| 爱情岛论坛亚洲首页入口章节| 在线视频亚洲专区| 欧美专区第一页| 日本免费网站在线观看| 亚洲自拍偷拍网站| 午夜性福利视频| 午夜精品亚洲| 国产精品日韩一区二区| 青青在线视频| 日韩视频免费观看高清完整版 | 日本视频在线免费观看| 本田岬高潮一区二区三区| 国产精品久久久影院| av在线亚洲一区| www.亚洲免费视频| 亚洲天堂网在线观看视频| 久久精品夜夜夜夜久久| www.com毛片| 奇米777国产一区国产二区| 欧美成人激情在线| 国产jzjzjz丝袜老师水多| 亚洲日本在线a| 两女双腿交缠激烈磨豆腐| 欧美残忍xxxx极端| 成人激情春色网| dy888亚洲精品一区二区三区| 欧美一级理论性理论a| 久久久久久久久久亚洲| 国产精品欧美激情在线| 亚洲乱码中文字幕| 国产精品欧美性爱| 在线视频观看日韩| 久久涩涩网站| 国产精品天堂蜜av在线播放 | 激情视频一区二区| 一区一区三区| 色狠狠av一区二区三区香蕉蜜桃| 国产精品视频在线观看免费| 亚洲精品欧美二区三区中文字幕| 欧美一级免费在线| 欧美日韩18| 久久99精品久久久久久秒播放器| **欧美日韩在线观看| 在线观看日韩视频| 国产三级视频在线播放| 亚洲成人精品影院| 国产成人无码精品久久二区三| 免费xxxx性欧美18vr| dy888午夜| 欧美顶级毛片在线播放| 国产精品欧美一区二区三区奶水| av网站导航在线观看免费| 亚洲激情免费观看| 中文字幕码精品视频网站| 亚洲精品国产高清久久伦理二区| 制服丝袜第一页在线观看| 日韩和欧美的一区| 特级西西人体www高清大胆| 亚洲欧美成人vr| 亚洲在线观看视频| 成人美女视频| 欧美精品免费在线| 国产精品麻豆一区二区三区| 日韩欧美区一区二| 无码人妻丰满熟妇区bbbbxxxx| 亚洲人妖av一区二区| 女~淫辱の触手3d动漫| 国产在线国偷精品产拍免费yy| 女性女同性aⅴ免费观女性恋| 97国产成人高清在线观看| 国偷自产av一区二区三区小尤奈| 国产综合色激情| 5278欧美一区二区三区| 国产黄a三级三级三级av在线看| 亚洲精品视频二区| 精品久久久久成人码免费动漫| 欧美视频中文一区二区三区在线观看 | 国产精品自拍区| 国产精品露出视频| 日韩午夜视频在线| 欧亚精品在线观看| 青青在线视频| 久久综合久久八八| 成av人电影在线观看| 日韩成人小视频| 国产黄频在线观看| 69堂精品视频| 久久久久久久久久一级| 精品久久久久久中文字幕大豆网| 动漫性做爰视频| 中文字幕一区二区三| 国产成人一区二区在线观看| 久久婷婷综合激情| 妖精视频一区二区| 国产sm精品调教视频网站| 国产精品区在线| 日本va欧美va精品| 成人在线看视频| 亚洲免费综合| 国产免费黄视频| 亚洲乱亚洲高清| 日韩视频在线视频| 欧美久久一区| 成年丰满熟妇午夜免费视频| 亚洲一级毛片| 日本免费黄色小视频| 围产精品久久久久久久| 亚洲一区二区三区午夜| 青青草原综合久久大伊人精品| 日韩精品一线二线三线| 国产欧美一区二区三区精品观看| 欧美精彩一区二区三区| 亚瑟一区二区三区四区| 另类视频在线观看+1080p| 日韩大胆成人| 蜜桃av噜噜一区二区三区| 亚洲va久久久噜噜噜久久| 国产在线视频欧美一区二区三区| 欧美成人一区在线观看| 另类视频在线观看+1080p| 妖精一区二区三区精品视频 | 中文字幕亚洲综合久久五月天色无吗'' | 成人中文字幕在线观看| 国产精品777777在线播放| 亚洲aa中文字幕| 福利片一区二区| 免费精品视频一区| 国产一区二区亚洲| 亚洲综合视频一区| 亚洲澳门在线| 男人天堂av片| 亚洲制服少妇| 久久99爱视频| 国产一区二区剧情av在线| 国产伦精品一区二区三区精品| 92国产精品观看| 蜜桃传媒一区二区亚洲| 中文字幕在线一区免费| 久久久久亚洲av片无码下载蜜桃| 亚洲成人av中文| 91青青草视频| 777色狠狠一区二区三区| 国产 日韩 欧美 精品| 亚洲理论在线a中文字幕| 91九色在线porn| 欧美黑人性视频| 成人免费看黄| 成人黄色免费片| 精品成人自拍视频| 亚洲 国产 日韩 综合一区| 欧美一区二区三区久久精品茉莉花| 妞干网在线观看视频| 日本不卡免费在线视频| 国产男女无遮挡猛进猛出| www久久精品| 精品国产乱码久久久久久鸭王1| 天天综合色天天综合| 136福利视频导航| 日韩电影网在线| 黄色在线视频网站| 国产69久久精品成人| 成人av在线播放| 麻豆一区区三区四区产品精品蜜桃| 天天做天天爱天天综合网2021| 91丨porny丨探花| 久久草av在线| 人人妻人人藻人人爽欧美一区| 一区二区三区日韩在线观看| 成人a v视频| 亚洲福利精品在线| 免费在线观看av| 日韩av毛片网| silk一区二区三区精品视频| 亚洲精品一区二区三区四区五区| 日韩视频精品在线观看| 久久久久久综合网| 国产午夜一区二区三区| 国产午夜视频在线播放| 制服丝袜av成人在线看| 韩日视频在线| 91福利视频在线观看| 国产精品一区二区三区四区在线观看 | 国产夫妻在线观看| 中文字幕日韩高清| 中文字幕这里只有精品| 国产亚洲一区在线播放| 中文字幕一区二区三区欧美日韩 | 91一区二区三区在线观看| 欧美成人精品欧美一级私黄| 欧美日韩高清一区二区三区| 电影在线高清| 日产精品99久久久久久| 久本草在线中文字幕亚洲| 男人j进女人j| 国产一区二区三区av电影| 免费精品在线视频| 欧美日韩一区二区在线视频| 亚洲AV第二区国产精品| 国模视频一区二区| 亚洲五码在线| 超级碰在线观看| 紧缚捆绑精品一区二区| 一本一本久久a久久| 欧美日韩免费在线视频| 亚洲天天影视| 国产精品一区二区三区免费视频| av亚洲免费| 在线观看免费污视频| 国产精品色一区二区三区| 中文字幕一区二区三区人妻四季| 伊人伊成久久人综合网站| 日韩高清在线| 亚洲国产欧美日韩| 麻豆精品新av中文字幕| 小嫩苞一区二区三区| 欧美伦理视频网站| 高清免费电影在线观看| 91在线短视频| 一区二区日本视频| 人妻大战黑人白浆狂泄| 91豆麻精品91久久久久久| 1769在线观看| 91精品视频免费观看| 欧美国产三级| www.啪啪.com| 欧美午夜性色大片在线观看| 噜噜噜噜噜在线视频| 国产精品久久久久久久app| 天天综合精品| 国产51自产区| 日韩欧美在线视频免费观看| av男人的天堂在线| 亚洲mm色国产网站| 影院欧美亚洲| 久久av无码精品人妻系列试探| 欧美色视频在线观看| 51xtv成人影院| 久久国产精品一区二区三区| 日本视频一区二区| 污软件在线观看| 亚洲国产一区二区三区在线观看| 韩国三级一区| 日本a级片在线观看| 91在线丨porny丨国产| 国产男人搡女人免费视频| 超碰日本道色综合久久综合| 精品三级av在线导航| 欧美精品aaaa| 一区二区三区免费在线观看| 亚洲日本在线播放| 国产日本欧美一区二区三区| 亚洲天堂男人| 91麻豆制片厂| 亚洲成av人乱码色午夜| 欧美xxxx做受欧美护士| 国产欧美123| 国产欧美一区二区三区鸳鸯浴| 亚洲av无码一区二区乱子伦| 国产999精品| 欧美破处大片在线视频| 午夜影院黄色片|