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

interface和type有什么區(qū)別嗎?你知道嗎?

開發(fā) 前端
在typescript里,還有很多容易搞混淆的概念,interface和type是最典型的,目的都是實現(xiàn)對象的類型和結構定義,但是又有些許不同。對于使用的建議,在庫或第三方類型定義中的公共API定義,應使用interface來提供聲明合并功能。

1.寫在前面

當我們使用 TypeScript時,就會用到 interface和type去描述對象的形狀和結構,平時感覺他們用法好像是一樣的,有區(qū)別又好像沒有的感覺。這兩個概念對于多數(shù)人而言還是有點容易混淆,那么這篇文章帶領你去看看他們的異同。

2.interface和type

interface用于描述對象的形狀和結構,可以給數(shù)據(jù)增加類型,而且方便進行復用。而type是通過別名進行重新定義類型的,類型別名指的是為類型創(chuàng)建新名稱,需要注意的是,我們并沒有定義一個新類型。兩者是對接口定義的兩種不同形式,目的都是在于定義對象的形狀和結構。

但是,兩者還是有些許差別:

  • interface和type都能夠被擴展,interface可以拓展type,但是type不能繼承interface
  • 類可以以相同的方式實現(xiàn)(implements)接口或類型別名,但類不能實現(xiàn)使用類型別名定義的聯(lián)合類型。
  • type 可以使用聯(lián)合類型和交集,interface 不能使用聯(lián)合類型和交集組合
  • 類型別名聲明可用于任何基元類型、聯(lián)合或交集。在這方面,interface被限制為對象類型和函數(shù)簽名。
  • interface可以實現(xiàn)聲明合并,type不能實現(xiàn)聲明合并

使用interface和type描述對象的形狀和結構

interface ISum {
(num1: number, num2: number):number
}
const sum: ISum = (num1,num2)=>{
return num1+num2
}


type TSum = (num1: number, num2: number)=>number
const sum2: TSum = (num1,num2)=>{
return num1+num2
}

如果有聯(lián)合類型,就使用type

interface IUser{
name:string
age:number
}

interface IStudent{
university: string
}

// Error: 不能使用interface進行聯(lián)合類型,不存在interface IPerson = IUser | IStudent;
type TPerson = IUser | IStudent;

type 可以使用聯(lián)合類型和交集,interface 不能使用聯(lián)合類型和交集組合

type TPersonA = {
name: string
}
type TPersonB = {
age: number
}
// 交集
type PartialPerson = TPersonA & TPersonB;
// 并集 聯(lián)合類型
type PartialPerson = TPersonA | TPersonB;

interface的特性

對于接口上沒有定義的屬性,可以使用以下方法進行聲明:

(1)使用類型斷言

interface IPerson{
name:string;
age:number;
}

const pingping: IPerson = {
name:"pingping",
age:18,
address:"北京"
} as IPerson

(2)可以使用繼承

interface IPerson{
name:string;
age:number;
}

interface IUser extends IPerson{
address:string
}

const pingping: IUser = {
name:"pingping",
age:18,
address:"北京"
}

(3)可以使用可選類型

interface IPerson{
name:string;
age:number;
address?: string;
}

const pingping: IPerson = {
name:"pingping",
age:18,
address:"北京"
}

(4)可使用可索引接口

interface IPerson{
name:string;
age:number;
[key: string]: any;
}
const pingping: IPerson = {
name:"pingping",
age:18,
address:"北京"
}

interface和type都能夠被擴展,interface可以拓展type,但是type不能繼承interface,type可以使用&聯(lián)合類型來實現(xiàn)類似的功能

interface IPerson{
name:string
age:number
}

type TPerson = {
name:string
age:number
}

interface IStudent extends IPerson{
university:string
}
interface IStudent extends TPerson{
university:string
}

type TStudent = TPerson & {
university:string
}

type TStudent = IPerson & {
university:string
}

類可以以相同的方式實現(xiàn)(implements)接口或類型別名,但類不能實現(xiàn)使用類型別名定義的聯(lián)合類型

interface IPerson {
name:string
age:number
}

class User implements IPerson {
name = "pingping";
age = 18;
}

type TPerson = {
name:string
age:number
};

class User implements TPerson {
name = "pingping";
age = 18;
}

type PartialPerson = { name: string } | { age: number };

// A class can only implement an object type or
// intersection of object types with statically known members.
class SomePartialPerson implements PartialPerson { // Error
name = "pingping";
age = 18;
}

interface可以實現(xiàn)聲明合并,type不能實現(xiàn)聲明合并

interface IPerson{
name: string
}
interface IPerson{
age: number
}
const user: IPerson = {
name: "pingping",
age: 18
}

類型別名聲明可用于任何基元類型、聯(lián)合或交集。在這方面,interface被限制為對象類型和函數(shù)簽名

type TPerson = [name: string, age: number];

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

interface IPerson{
user: [name: string, age: number]
}

3. 參考文章

  • 《使用 TypeScript 常見困惑:interface 和 type 的區(qū)別是什么?》
  • 《一份不可多得的 TS 學習指南(1.8W字)》
  • 《type和interface的區(qū)別知多少?》

4. 寫在最后

在typescript里,還有很多容易搞混淆的概念,interface和type是最典型的,目的都是實現(xiàn)對象的類型和結構定義,但是又有些許不同。對于使用的建議,在庫或第三方類型定義中的公共API定義,應使用interface來提供聲明合并功能。除此之外,隨你如何使用,但是在整個代碼庫中應該盡量要保持一致性。

責任編輯:武曉燕 來源: 前端萬有引力
相關推薦

2024-05-27 00:00:00

localhostIPv6IPv4

2022-06-08 07:34:25

InnoDBdeleteMySQL

2021-02-06 21:57:40

Debug模式Release

2021-07-27 08:02:45

DTO 軟件Pojo

2022-08-26 01:41:42

GPUCPU架構

2025-07-10 00:00:00

2022-09-02 09:02:44

TypeInterface

2022-08-02 10:01:34

Import語句ES模塊

2024-01-01 08:25:53

ViewSurface框架

2024-03-26 00:10:08

預測AI泛化

2024-10-22 09:59:36

虛擬化容器化系統(tǒng)

2018-10-26 10:41:06

ApacheNginx服務器

2023-04-26 10:21:04

2023-12-20 08:23:53

NIO組件非阻塞

2024-04-30 09:02:48

2023-06-01 08:15:04

CentOS紅帽

2023-12-07 07:08:09

Angular函數(shù)

2023-09-01 07:38:45

ArrayListArrayst實線類

2022-11-28 00:04:17

2025-02-18 08:11:17

點贊
收藏

51CTO技術棧公眾號

国产伦精品一区二区三区照片91 | 在线观看国产成人av片| 日韩av手机版| 视频在线这里都是精品| 91毛片在线观看| 成人精品久久久| 国产特黄大片aaaa毛片| 区一区二视频| 亚洲激情中文字幕| 五月天婷婷亚洲| www.8ⅹ8ⅹ羞羞漫画在线看| 国产精品久久久久毛片软件| 国产精品国产精品| www.亚洲激情| 激情久久五月| 北条麻妃一区二区三区中文字幕| 欧洲熟妇的性久久久久久| 美女色狠狠久久| 亚洲成a人片综合在线| 日韩欧美亚洲v片| 欧美熟妇另类久久久久久不卡| 琪琪一区二区三区| 秋霞av国产精品一区| 中文字幕在线有码| 成人一区二区| 亚洲欧美福利视频| 黄色激情在线观看| 粉嫩一区二区三区在线观看| 欧美在线免费观看视频| 日韩av新片网| 好吊日视频在线观看| 欧美精彩视频一区二区三区| 国产一区二区三区无遮挡| 国产精品色综合| 日韩和欧美一区二区三区| 91精品国产高清自在线| 青青草手机在线观看| 日韩久久视频| 一区二区三区 在线观看视| 亚洲久久久久久| youjizzjizz亚洲| 欧美一区二区在线观看| 在线观看av网页| 日韩一级二级| 欧美写真视频网站| 欧美性猛交久久久乱大交小说| 一本大道色婷婷在线| 亚洲国产精品一区二区www| 男女啪啪免费观看| 怡红院在线播放| 亚洲精品v日韩精品| 丰满人妻一区二区三区53号| 成人直播在线| 一区二区三区蜜桃网| 国产免费一区二区三区四在线播放| 春暖花开成人亚洲区| 国产欧美日韩精品一区| 日韩福利视频| 中文字幕在线视频区| 中文字幕第一区二区| 亚洲日本欧美在线| 久操视频在线观看| 一区二区三区四区乱视频| 国产成人生活片| 女人黄色免费在线观看| 亚洲大尺度视频在线观看| 久激情内射婷内射蜜桃| 成人在线黄色电影| 一本到一区二区三区| 毛片一区二区三区四区| 欧美三区四区| 制服丝袜日韩国产| 好吊操视频这里只有精品| 黄色美女久久久| 亚洲女人天堂视频| 精品丰满少妇一区二区三区| 2023国产精品久久久精品双| 久久久久久久久中文字幕| 天天操天天摸天天干| 视频一区在线视频| 成人午夜一级二级三级| 欧美一级做性受免费大片免费| 99国产精品久久久久久久久久久| 日韩.欧美.亚洲| 国产一二区在线| 亚洲观看高清完整版在线观看| 黄色免费视频大全| 色999久久久精品人人澡69| 日韩欧美不卡一区| 午夜理伦三级做爰电影| 小处雏高清一区二区三区| 欧美极品少妇全裸体| 无码人妻精品一区二区蜜桃色欲 | 国产日产欧美精品| 亚洲精品久久久久久久久久久久久久| 91蝌蚪porny九色| 亚洲精品9999| 日本在线影院| 91精品麻豆日日躁夜夜躁| 先锋资源av在线| 99热在线成人| 91超碰caoporn97人人| 亚洲天堂视频网| av一区二区三区| 中文一区一区三区免费| 亚洲色图官网| 精品盗摄一区二区三区| 91禁男男在线观看| 一二三区精品| 亚洲综合视频1区| 成a人v在线播放| 激情成人中文字幕| 日本少妇一区二区三区| 精品大片一区二区| 91精品国产91久久久久久吃药| 国产又黄又爽视频| 亚洲国产激情av| 国内性生活视频| heyzo欧美激情| 久久精品视频va| www.日韩一区| 久久综合99re88久久爱| av免费看网址| 亚洲电影一区| 伦伦影院午夜日韩欧美限制| 国产成人a v| 久久只精品国产| 少妇高潮毛片色欲ava片| 99re8精品视频在线观看| 一区二区三区高清国产| 日本视频网站在线观看| 菠萝蜜视频在线观看一区| 99视频精品全部免费看| 国产一区二区三区免费观看在线| 中国日韩欧美久久久久久久久| 毛片毛片女人毛片毛片| 不卡的看片网站| 久久亚洲中文字幕无码| 这里视频有精品| 久久久久久久久网站| 蜜桃视频在线观看www| 亚洲自拍偷拍麻豆| 欧美激情国内自拍| 91tv官网精品成人亚洲| 国产一区香蕉久久| 日本最新在线视频| 欧美日韩国产精品自在自线| 网站永久看片免费| 久久国产剧场电影| 在线看视频不卡| 香蕉久久一区| 欧美成人免费网| www.com欧美| 亚洲一区二区三区四区五区黄| 欧美熟妇另类久久久久久多毛| 在线精品视频在线观看高清| 99re在线观看视频| 丁香花在线高清完整版视频| 精品福利二区三区| 成年人视频在线免费看| 91免费观看国产| 日韩免费高清在线| 欧美电影一二区| 91传媒视频在线观看| 黑人精品视频| 亚洲欧美激情精品一区二区| 久久久999久久久| 一色屋精品亚洲香蕉网站| 色婷婷激情视频| 伊人久久亚洲美女图片| 好吊色欧美一区二区三区| 欧美天堂视频| 色久欧美在线视频观看| a视频免费在线观看| 亚洲一区二区三区美女| 男人操女人动态图| 极品少妇xxxx精品少妇| aa视频在线播放| 欧美视频免费| 99re国产在线播放| 成人免费看视频网站| 日韩视频免费在线观看| 人妻一区二区三区| 欧美三级电影精品| 欧美黄色一级网站| 国产三级一区二区| 日本女人性视频| 天堂在线一区二区| 久久久久久久久网| 欧美日韩国产免费观看视频| 91成人理论电影| 一二区成人影院电影网| 久久99精品久久久久久噜噜| 女人偷人在线视频| 日韩三级在线观看| 中文字幕乱码中文字幕| 洋洋成人永久网站入口| аⅴ天堂中文在线网| 成人性生交大片免费看视频在线| 另类小说第一页| 影音国产精品| 日本精品免费视频| 精品一区二区三区在线| 久久精品女人的天堂av| 高清一区二区中文字幕| 国产成人小视频在线观看| 欧美一卡二卡| 精品国产自在精品国产浪潮| 三级在线播放| 精品电影一区二区| 国产女人爽到高潮a毛片| 色综合视频在线观看| 日本少妇做爰全过程毛片| 国产精品久久久久四虎| 受虐m奴xxx在线观看| 成人中文字幕在线| 在线成人免费av| 久久国产福利国产秒拍| 国产野外作爱视频播放| 校园春色综合网| 欧美久久久久久久久久久久久| 综合激情在线| 自拍偷拍视频在线| 91综合久久| 亚洲国产一区二区三区在线| 免费黄色成人| 久久66热这里只有精品| 国产suv精品一区| 99国内精品久久久久久久软件| 欧美一级免费| 国产欧美日韩91| 国产精品久久乐| 国产精品久久久久影院日本| 男人最爱成人网| 日本久久久a级免费| 亚洲最新无码中文字幕久久| 69久久夜色精品国产69乱青草| 青草影视电视剧免费播放在线观看| 欧美成人三级视频网站| 黄网站app在线观看| 久久色免费在线视频| 免费黄色在线网站| www.99久久热国产日韩欧美.com| 自拍视频在线免费观看| 日韩中文字幕精品| 九色porny在线| 久久天天躁狠狠躁夜夜躁2014 | 国产精品乱子久久久久| av免费播放网站| 中文字幕在线一区| 色老板免费视频| 亚洲免费伊人电影| av激情在线观看| 亚洲午夜视频在线观看| 久久高清免费视频| 欧美午夜www高清视频| 天天干天天干天天| 91久久精品一区二区| 欧美性受xxx黑人xyx性爽| 欧美亚洲国产一卡| 国产永久免费视频| 日韩欧美视频在线| 日韩亚洲视频在线观看| 国产亚洲欧美日韩美女| 免费在线看a| 欧美黄色www| 在线天堂新版最新版在线8| 国产精品久久久久9999| 成人免费观看49www在线观看| 超碰97在线资源| 欧美jizz19性欧美| 三区精品视频观看| 影视一区二区| 大陆极品少妇内射aaaaa| 日韩精品电影在线观看| 在线观看日本www| 99精品视频一区| 99自拍偷拍视频| 亚洲国产另类精品专区| 国产精品午夜一区二区| 欧美一区二区日韩一区二区| 天堂在线观看视频| 一区二区三区四区精品| 手机av免费在线| 国产精品h片在线播放| 精品国产一区二区三区2021| 精品国产乱码久久久久软件| 青青草国产免费一区二区下载| 亚洲精品国产suv一区88| 亚洲欧美视频一区二区三区| 免费一区二区三区在线观看| 成人av在线电影| 老司机深夜福利网站| 精品久久香蕉国产线看观看gif| 在线观看免费中文字幕| 亚洲精品v天堂中文字幕| 日韩专区在线| 91a在线视频| 精品视频在线播放一区二区三区| 欧美精品亚洲| 欧美体内she精视频在线观看| 嫩草影院国产精品| 白白色亚洲国产精品| 久久福利免费视频| 色网综合在线观看| 日韩在线观看视频一区| 久久久av一区| 成人网ww555视频免费看| 国产一区二区不卡视频| 五月激情综合| 天天干在线影院| 2017欧美狠狠色| 国产一级片视频| 日韩一区二区三区免费观看| 成人h小游戏| 欧美在线视频免费播放| 成人h动漫免费观看网站| 中文字幕日韩精品久久| 日本在线不卡一区| 国产精品久久久久无码av色戒| 亚洲国产综合色| 国产xxxx孕妇| 久久久国产精彩视频美女艺术照福利| 国产综合色区在线观看| 免费电影一区| 国产日韩欧美一区| 无码国产精品一区二区免费式直播| 亚洲免费大片在线观看| 国产免费叼嘿网站免费| 久久精品国产一区二区三区| 成人国产网站| 少妇特黄a一区二区三区| 麻豆9191精品国产| 高潮毛片无遮挡| 日韩欧美高清视频| 国模吧精品人体gogo| 日本精品久久中文字幕佐佐木| 开心激情综合| 久草热视频在线观看| 不卡一区二区在线| 圆产精品久久久久久久久久久| 亚洲第五色综合网| 都市激情国产精品| 久久久精品有限公司| 美女久久一区| www.99热| 777奇米四色成人影色区| www视频在线看| 超碰97人人在线| 亚洲第一区色| 久久无码人妻精品一区二区三区| 福利一区视频在线观看| 精品亚洲综合| 国产伦精品免费视频| 亚洲精品中文字幕乱码| 99精品视频免费版的特色功能| 一区二区三区四区不卡在线| 亚洲黄色小说网| 97视频免费在线观看| 精品在线观看入口| 狠狠躁狠狠躁视频专区| 亚洲天堂中文字幕| 人妻少妇精品无码专区| 欧美一级在线播放| 欧美日韩在线播放视频| 人妻体体内射精一区二区| 亚洲成人动漫av| 国产免费永久在线观看| 国产在线视频2019最新视频| 极品中文字幕一区| 亚洲区自拍偷拍| 日韩欧美国产电影| 午夜av不卡| 在线观看视频黄色| 成人晚上爱看视频| 波多野结衣视频在线看| 欧美成人精品xxx| 亚洲人成网77777色在线播放| 一道本视频在线观看| 一区二区三区毛片| 你懂的在线播放| 亚洲xxxxx| 先锋影音久久久| 欧美日韩精品在线观看视频| 亚洲乱码av中文一区二区| www.成人| 国产熟女高潮视频| 亚洲精品免费看| 国产对白叫床清晰在线播放| 亚洲精品免费在线视频| 三级一区在线视频先锋| 九九热国产精品视频| 国产香蕉97碰碰久久人人| 一区二区三区自拍视频| 亚洲少妇久久久| 欧美性猛交xxx| 制服丝袜中文字幕在线| 日韩中文一区| av网站免费线看精品| 国产精品美女一区|