国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

TypeScript 中 Type 和 Interface 有什么區別?

開發 前端
今天我們來看看 Type 和 Interface 的區別。Type 是 類型別名,給一些類型的組合起別名,這樣能夠更方便地在各個地方使用。Interface 是 接口。有點像 type,可以用來代表一種類型組合,但它范圍更小一些,只能描述對象結構。

大家好,我是前端西瓜哥,今天我們來看看 type 和 interface 的區別。

type 和 interface

type 是 類型別名,給一些類型的組合起別名,這樣能夠更方便地在各個地方使用。

假設我們的業務中,id 可以為字符串或數字,那么我們可以定義這么一個名為 ID 的 type:

type ID = string | number;

定義一個名為 Circle 的對象結構 type:

type Circle = {
x: number;
y: number;
radius: number;
}

interface 是 接口。有點像 type,可以用來代表一種類型組合,但它范圍更小一些,只能描述對象結構。

interface Position {
x: number;
y: number;
}

它們寫法有一點區別,type 后面需要用 =,interface 后面不需要 =,直接就帶上 {

范圍

type 能表示的任何類型組合。

interface 只能表示對象結構的類型。

繼承

interface 可以繼承(extends)另一個 interface。

下面代碼中,Rect 繼承了 Shape 的屬性,并在該基礎上新增了 width 和 height 屬性。

interface Shape {
x: number;
y: number;
}
// 繼承擴展
interface Rect extends Shape {
width: number;
height: number;
}
const rect: Rect = { x: 0, y: 0, width: 0, height: 0 };

interface 也可以繼承自 type,但只能是對象結構,或多個對象組成交叉類型(&)的 type。

再來看看 type 的繼承能力。

type 可以通過 & 的寫法來繼承 type 或 interface,得到一個交叉類型:

type Shape = {
x: number;
y: number;
}
type Circle = Shape & { r: number }
const circle: Circle = { x: 0, y: 0, r: 8 }

聲明合并

interface 支持聲明合并,文件下多個同名的 interface,它們的屬性會進行合并。

interface Point {
x: number;
}
interface Point {
y: number;
}
const point: Point = { x: 10, y: 30 };

需要注意的是,同名屬性的不能進行類型覆蓋修改,否則編譯不通過。比如我先聲明屬性 x 類型為 number,然后你再聲明屬性 x 為 string | numebr,就像下面這樣,編譯器會報錯。

interface Point {
x: number;
}
interface Point {
// 報錯
// Property 'x' must be of type 'number', but here has type 'string | number'.
x: string | number;
y: number;
}

extends 可以將屬性的類型進行收窄,比如從 string | number 變成 string。

但聲明合并不行,類型必須完全一致。

type 不支持聲明合并,一個作用域內不允許有多個同名 type。

// 報錯:Duplicate identifier 'Point'.
type Point = {
x: number;
}
// 報錯:Duplicate identifier 'Point'.
type Point = {
y: number;
}

當然,如果有和 type 同名的 interface,也會報錯。

結尾

總結一下,type 和 interface 的不同點有:

  1. type 后面有 =,interface 沒有。
  2. type 可以描述任何類型組合,interface 只能描述對象結構。
  3. interface 可以繼承自(extends)interface 或對象結構的 type。type 也可以通過 &做對象結構的繼承。
  4. 多次聲明的同名 interface 會進行聲明合并,type 則不允許多次聲明。

大多數情況下,我更推薦使用 interface,因為它擴展起來會更方便,提示也更友好。& 真的很難用。

責任編輯:姜華 來源: 今日頭條
相關推薦

2022-03-13 18:53:31

interfacetypeTypeScript

2022-05-06 09:21:21

TypeScriptinterfacetype

2021-06-23 08:01:18

TypeScript interface type

2022-08-31 08:33:54

Bash操作系統Linux

2019-04-03 14:16:25

Type 1Type 2虛擬機

2021-08-05 08:32:45

TypeScript InterfaceType

2021-03-27 10:56:17

promisethenfinally

2022-09-07 18:32:57

并發編程線程

2020-03-09 20:56:19

LoRaLoRaWAN無線技術

2020-11-09 14:07:53

PyQtQt編程

2022-09-08 18:38:26

LinuxWindowsmacOS

2022-06-06 14:53:02

LoRaLoRaWAN

2024-09-09 13:10:14

2021-05-16 14:26:08

RPAIPACIO

2021-12-17 14:40:02

while(1)for(;;)語言

2024-05-27 00:40:00

2024-03-05 18:59:59

前端開發localhost

2022-08-02 08:23:37

SessionCookies

2022-02-27 15:33:22

安全CASBSASE

2020-08-02 23:20:36

JavaScriptmap()forEach()
點贊
收藏

51CTO技術棧公眾號

欧美激情一区二区三区在线视频观看| 高清国产在线一区| 欧产日产国产精品视频| 色久优优欧美色久优优| va中文字幕| 成人免费在线观看入口| 99久久久无码国产精品6| 成人手机电影网| 日本一本中文字幕| 成人激情小说乱人伦| 欧美综合在线播放| 91麻豆国产香蕉久久精品| 2018国产在线| 久久久国产精品午夜一区ai换脸 | 丝袜美腿一区| 精品国产百合女同互慰| av网站网址在线观看| 正在播放亚洲一区| 成人免费看片| 日韩精品专区在线影院重磅| 中文字幕在线观看网站| 日韩美女天天操| 超碰资源在线| 中文字幕亚洲二区| 美女久久精品| 91国产视频在线播放| 一本色道久久综合亚洲精品酒店| 日韩免费在线免费观看| 99久久夜色精品国产亚洲1000部| 国产精品成人一区二区| 91精品国产调教在线观看| 国产欧美一区二区视频| 日韩成人免费看| www.成年人视频| 成人一区二区三区| 精品国产av无码一区二区三区| 国产一区二区三区四区在线观看| 2018国产在线| 亚洲免费在线观看视频| 天堂中文在线8| 51精品视频一区二区三区| 亚洲人体影院| 久久久人成影片一区二区三区观看| 亚洲大片精品免费| 精品亚洲一区二区三区四区五区高| 国产精品草莓在线免费观看| 欧美日韩亚洲一二三| 99re免费视频精品全部| 国产亚洲精品网站| 中文字幕av一区 二区| 日本中文字幕视频| 色老汉一区二区三区| 国产区在线观看| 亚洲欧美三级伦理| 丁香综合av| 91久久在线视频| 日本不卡一区二区| aaa毛片在线观看| 亚洲一区二区欧美激情| 在线激情免费视频| 最近2019中文字幕mv免费看| 国产精品一区二区av交换| 国产尤物91| 久久免费电影网| 黄色av网站在线看| 中国人与牲禽动交精品| 成人精品中文字幕| 国产免费色视频| 国产精品色一区二区三区| 国产精品毛片一区二区三区四区| 亚洲精品网址在线观看| 亚洲香蕉视频| 亚洲午夜精品一区二区三区| 国产精品你懂的在线| 免费在线看黄网站| 欧美交受高潮1| 亚洲激情一区| 国内外成人免费激情视频| 色8久久精品久久久久久蜜| 成人影院网站| 91久久精品美女高潮| 成人免费福利片| 亚洲s色大片| 久久久亚洲天堂| 日韩电影免费一区| а√最新版地址在线天堂| 日韩精品在线观看一区| 91精品国产乱码久久久久久久| 欧美成人三级在线视频| 欧美精品乱码久久久久久按摩| 99国产精品免费网站| 性欧美精品一区二区三区在线播放 | 日韩精品在线视频美女| 成人vr资源| www.国产区| 日韩精品黄色网| 亚洲无毛电影| jk破处视频在线| 欧美老女人性生活| 国产米奇在线777精品观看| 香蕉视频国产在线观看| 国产精品一区二区三区成人| 国产亚洲自拍一区| 日韩毛片免费观看| 亚洲欧美日韩精品久久久| 在线观看亚洲成人| 欧洲grand老妇人| 先锋影音资源999| 久久精品国产视频| 激情五月激情综合网| 在线午夜影院| 高清国产一区| 午夜精品久久久久久久久久久| 成人av动漫| 熟妇人妻va精品中文字幕| 亚洲片在线资源| 韩国一区二区三区| 1区2区3区在线| 亚洲视频在线二区| 精品区一区二区| 日韩激情在线观看| 污污的视频在线观看| 日本成人黄色| 日韩精品一区二区三区老鸭窝| 一区二区91| 手机av在线播放| 日韩亚洲视频在线| 日韩欧美www| 日韩精品三区四区| 高清视频在线观看三级| 亚欧洲精品在线视频免费观看| 亚洲成年人在线播放| 免费国产亚洲视频| 草草视频在线观看| 麻豆一区二区三区在线观看| 亚洲女人天堂成人av在线| 懂色av噜噜一区二区三区av| 怡红院成人在线| 日韩欧美亚洲天堂| 午夜精品福利在线观看| 亚洲人成人一区二区在线观看 | 香蕉视频色版| 亚洲一区二区三区在线免费观看 | 操操操综合网| 成人在线视频网站| 欧美久久久久中文字幕| 久久国产欧美| 成人免费无遮挡| 99精品人妻少妇一区二区| 色综合久综合久久综合久鬼88| 亚洲欧美日韩国产手机在线| 日韩欧美三级| 中文在线字幕免费观看| 亚洲小视频在线播放| www日韩中文字幕在线看| 中文字幕一区二区三区视频| 91久久国产| 日本不卡影院| 国产免费黄色一级片| 91成人免费观看网站| 色综合久久久久久久久久久| 久久精品人人| 91精品国产色综合久久不卡粉嫩| 亚洲欧美日韩一级| 亚洲精品免费一区二区三区| 日韩午夜av一区| 99re66热这里只有精品3直播| 国产区精品区| 免费看电影在线| 欧美精品第三页| 91免费精品国偷自产在线| 亚洲第一级黄色片| 国产精品女人毛片| 在线一区免费观看| 亚洲va欧美va人人爽成人影院| 欧美日韩免费做爰大片| 欧美性视频在线播放| 国模叶桐国产精品一区| 欧美日韩午夜剧场| 美女视频黄久久| 亚洲综合社区网| 亚洲精品有码在线| 一区二区三区欧美| 日本伊人午夜精品| 亚洲97av| 女厕盗摄一区二区三区| 国产一区二区视频在线观看| 亚洲自拍三区| 久久久国产视频91| 97夜夜澡人人双人人人喊| 国产成人亚洲综合无码| 日韩大胆人体| 一区二区三区亚洲变态调教大结局 | 91视频综合| 丁香啪啪综合成人亚洲小说 | 国产精品尤物福利片在线观看| 亚洲一本大道| 美女视频免费精品| 中文无字幕一区二区三区| 日本一区二区三区四区视频|