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

欧洲中文字幕国产精品| 日韩一区二区不卡| 亚洲日本精品一区| 国产视频手机在线| 一区二区三区福利| 538在线一区二区精品国产| 免费观看亚洲视频| 国产毛片毛片毛片毛片毛片| 日韩在线观看| 在线观看国产日韩| 四虎精品欧美一区二区免费| 三级在线播放| 国产在线播放一区三区四| 国外成人性视频| 一本一本久久a久久| 九色丨蝌蚪丨成人| 欧美日韩精品免费观看视频| 国产情侣第一页| 搞黄视频在线观看| 国产.精品.日韩.另类.中文.在线.播放 | 人人超碰91尤物精品国产| 欧美老少配视频| 精品国产成人亚洲午夜福利| www国产精品| 欧美日本在线一区| 99久久久无码国产精品6| 色综合999| 亚洲欧洲www| 欧美日韩在线高清| 色婷婷av一区二区三区之e本道| 精品999日本| 最近2019好看的中文字幕免费 | 国产高清久久久| 国产精品一区二区三区毛片淫片| 超碰人人人人人人人| 欧美做受69| 欧美精品一区二区在线播放| 91欧美一区二区三区| 成人午夜毛片| 色94色欧美sute亚洲线路二| 国产亚洲综合视频| 九色porny丨首页入口在线| 亚洲在线成人精品| 女同性恋一区二区| 黄色成年人视频在线观看| 国产日韩v精品一区二区| 欧美激情第一页在线观看| 日韩一级片免费在线观看| 可以免费看不卡的av网站| 韩剧1988在线观看免费完整版| 亚洲国产欧美视频| 亚洲三级在线| 91精品国产欧美一区二区18| 潘金莲激情呻吟欲求不满视频| 欧美家庭影院| 亚洲午夜免费电影| 国产a级片网站| 国内精彩免费自拍视频在线观看网址 | av电影成人| 亚洲美女福利视频| 国产超碰在线一区| 国产精品日韩一区二区免费视频| 无码人妻一区二区三区线| 亚洲成人av| 久久成人在线视频| 欧美日韩国产精品综合| 国产精品地址| 26uuu久久噜噜噜噜| 四虎成人在线观看| 亚洲色图14p| 星空大象在线观看免费播放| 国产在线天堂www网在线观看| 92精品国产成人观看免费 | 污片在线免费观看| 一区二区三区四区精品在线视频| 热re99久久精品国产99热| 黄色毛片在线看| www.欧美色图| 欧美日韩免费高清| 天堂在线视频观看| 国产视频911| 四虎影院一区二区| 国产又色又爽又黄刺激在线视频| 国产精品久久久久久久久免费桃花 | 一区二区www| 久久亚洲风情| 成人激情视频免费在线| 蜜臀av在线观看| 国产亚洲欧美激情| 久久综合亚洲精品| 精品国产免费人成网站| 欧美人妇做爰xxxⅹ性高电影| 无码内射中文字幕岛国片| av在线成人| 亚洲国产日韩欧美综合久久| 91无套直看片红桃在线观看| 午夜精品偷拍| 国产精品∨欧美精品v日韩精品| 久久久精品福利| 亚洲激情网址| 国产精品wwwwww| 亚洲精品久久久久久久久久| 久久久午夜电影| 欧美这里只有精品| 免费日韩成人| 日韩国产一区三区| 大地资源二中文在线影视观看| 噜噜噜天天躁狠狠躁夜夜精品| 日韩欧美国产一区在线观看| 黄免费在线观看| 精品av久久久久电影| 国产专区精品视频| 日本1级在线| 亚洲成在线观看| 九九九九九国产| 九九综合久久| 性视频1819p久久| 国产视频手机在线观看| 欧美国产1区2区| 播放灌醉水嫩大学生国内精品| 日本电影欧美片| 亚洲国产日韩精品在线| 亚洲综合网在线| 欧美aaaaaa午夜精品| 麻豆av一区| 九色porny丨首页入口在线| 日韩午夜电影在线观看| 欧美大片xxxx| 一区二区动漫| av一区和二区| 污污网站在线观看| 日韩午夜激情视频| 国产极品国产极品| 激情丁香综合五月| 亚洲a∨一区二区三区| 成人性生活视频| 亚洲精品一二区| 无码人妻丰满熟妇精品区| 99久免费精品视频在线观看| 日韩精品在线观看av| 户外露出一区二区三区| 精品性高朝久久久久久久| 日本少妇在线观看| 国产成人精品亚洲日本在线桃色| 久久婷婷人人澡人人喊人人爽| av影片免费在线观看| 91国偷自产一区二区开放时间| 亚洲天堂av一区二区三区| 99成人超碰| 91成人伦理在线电影| 超碰在线无需免费| 欧美不卡一区二区三区四区| 妺妺窝人体色www聚色窝仙踪| 亚洲欧美日韩国产一区| 91久久精品美女| 成人免费网址| 精品欧美乱码久久久久久| 国产乡下妇女做爰毛片| 精品一区二区三区久久| 亚洲免费视频播放| 久久三级中文| 97精品国产97久久久久久免费| 亚洲中文一区二区三区| 自拍偷拍亚洲欧美日韩| 乱码一区二区三区| 亚洲美洲欧洲综合国产一区| 欧美精品一区二区视频| 黑人巨大亚洲一区二区久| 在线播放国产一区二区三区| 国产精品一区二区6| 久久综合狠狠综合久久综合88| 黄色网址在线免费看| 99精品在免费线中文字幕网站一区| 色婷婷综合久久久久| 国产视频一区二区三区四区五区| 国产欧美一区二区精品秋霞影院| 久久久亚洲国产精品| 亚州综合一区| 韩国v欧美v日本v亚洲| 日韩av视屏| 欧美日韩第一区日日骚| 九九九视频在线观看| 国产主播一区二区| 国产av人人夜夜澡人人爽麻豆| а√中文在线天堂精品| 欧美专区第一页| 国产调教视频在线观看| 亚洲精品videossex少妇| 国产女优在线播放| 亚洲自拍与偷拍| 男人舔女人下部高潮全视频| 国产成人欧美日韩在线电影| 四虎永久免费网站| 一道在线中文一区二区三区| 成人激情黄色网| 中文字幕在线官网| 美女精品视频一区| 国产99久久九九精品无码免费| 国产精品国产三级国产aⅴ入口| 亚洲高清在线免费观看| 亚洲天堂成人| 亚洲一区bb| 五月综合久久| 青青在线视频一区二区三区| a级片国产精品自在拍在线播放| 欧美一区二区日韩| 强乱中文字幕av一区乱码| 久久久99精品免费观看不卡| 无码人妻精品一区二区三| 免费成人你懂的| 午夜肉伦伦影院| 欧美午夜精彩| 久久久久久久久久久久久久一区 | 夜色激情一区二区| 成人小视频免费看| 97se亚洲国产综合自在线不卡| 欧美xxxxx在线视频| 亚洲午夜精品久久久久久app| 国产精品区一区二区三在线播放| 色偷偷色偷偷色偷偷在线视频| 国产视频欧美视频| 最近中文字幕在线免费观看| 中文字幕一区二区三区在线不卡| 激情小说欧美色图| 黄页视频在线91| 中文字幕成人在线视频| 日韩经典一区二区| 男人天堂网视频| 亚洲激情欧美| 国产毛片视频网站| 国内综合精品午夜久久资源| 欧美精品一区二区性色a+v| 四季av在线一区二区三区| 日本不卡一区二区三区视频| 神马久久影院| 老司机精品福利在线观看| 狠狠一区二区三区| 粉嫩精品一区二区三区在线观看 | 91精品视频在线看| 欧洲精品二区| 久久99精品久久久久久青青91 | 国产成人精品亚洲| 日韩欧美在线视频日韩欧美在线视频 | 男人揉女人奶房视频60分| 亚洲国产精品第一区二区| 99久久免费观看| 青青草成人影院| 天堂精品一区二区三区| 欧美综合久久| 致1999电视剧免费观看策驰影院| 国产在线播放精品| 成人妇女淫片aaaa视频| 香蕉成人在线| 91av免费看| 亚洲精品一区三区三区在线观看| 欧美激情在线视频二区| 欧美xxxx黑人又粗又长| 视频一区视频二区国产精品| 午夜伦理在线| 美女精品久久久| 精精国产xxxx视频在线中文版| 中文字幕亚洲欧美| 日韩子在线观看| 欧美日韩国产成人在线观看| av成人福利| 国产成人福利网站| 伊人亚洲精品| 欧美一级视频在线观看| 欧美xxxx做受欧美护士| 成人黄色激情网| 日韩在线视频一区二区三区 | 亚洲欧洲一区二区| 99久久综合狠狠综合久久aⅴ| 日韩午夜视频在线观看| 91中文字幕精品永久在线| 欧洲精品视频在线| 国产日韩1区| 高清一区在线观看| 国产精品一卡二| 中文字幕1234区| 不卡电影一区二区三区| 免费黄在线观看| 久久精品欧美日韩精品| 任我爽在线视频| 亚洲第一久久影院| 亚洲网站免费观看| 欧美午夜宅男影院| 国产女主播喷水视频在线观看| 精品美女久久久久久免费| 日本免费精品视频| 91精品免费在线| 日韩欧美电影在线观看| 日韩国产高清视频在线| 欧美成人二区| 538国产精品一区二区免费视频 | 欧美hentaied在线观看| 日本黄大片在线观看| 日韩高清不卡一区| 韩国黄色一级片| 亚洲国产成人一区二区三区| 久久久久人妻一区精品色欧美| 综合色中文字幕| 日韩毛片一区二区三区| 91精品国产综合久久福利| 日韩av资源站| 久久久久国产一区二区三区| 久久久精品一区二区毛片免费看| 国产精品一二区| 欧美1区2区3区4区| 992tv成人免费观看| 视频一区二区三区中文字幕| 天堂va欧美va亚洲va老司机| 国产精品蜜臀在线观看| 日韩精品手机在线| 欧美一卡2卡3卡4卡| av小片在线| 国产成人aa精品一区在线播放| 成人黄色在线| 欧美精品国产精品久久久 | 欧美大片日本大片免费观看| 成人精品在线播放| 日韩专区在线观看| 欧美日韩五码| 91传媒视频免费| 日本高清免费电影一区| 亚洲国产精品毛片av不卡在线| 麻豆免费看一区二区三区| 搡老熟女老女人一区二区| 亚洲一级不卡视频| a天堂在线视频| 另类视频在线观看| 亚洲三级电影| 中文字幕中文字幕在线中心一区| 韩国在线视频一区| 免费看91视频| 不卡的av在线| 杨钰莹一级淫片aaaaaa播放| 欧美高清精品3d| 日本电影在线观看网站| 国产精品91久久久久久| 国内精品久久久久久99蜜桃| 逼特逼视频在线| 久久久久久99久久久精品网站| 好吊日在线视频| 91麻豆精品国产91久久久使用方法| 午夜小视频在线播放| 91国内在线视频| 日韩三区视频| 欧美牲交a欧美牲交aⅴ免费下载| 国产自产高清不卡| 国产麻豆天美果冻无码视频| 欧美日韩国产页| 免费毛片在线| 久久久久久久久网站| ady日本映画久久精品一区二区| 视频三区二区一区| 美女在线一区二区| 久久嫩草捆绑紧缚| 91久久精品一区二区三| 黄色软件在线观看| 国产精品日韩在线播放| 国产精品久久久乱弄| 宇都宫紫苑在线播放| 一区二区三区加勒比av| 手机看片一区二区三区| 日本国产欧美一区二区三区| 精品福利久久久| 九九九九九伊人| 亚洲一区二区黄色| 99热精品在线播放| 欧美激情欧美激情| 麻豆精品少妇| www亚洲成人| 亚洲精品国久久99热| 人妻妺妺窝人体色www聚色窝 | 国产免费嫩草影院| 福利二区91精品bt7086| porn亚洲| 亚洲自拍偷拍色片视频| 亚洲国产午夜| jizz中文字幕| 日韩视频在线你懂得| 美女搞黄视频在线观看| 色综合久久久久久久久五月| 日韩国产高清影视| 亚洲国产美女视频| 亚洲色图第一页| 视频一区中文字幕精品| 男女激烈动态图| 久久免费美女视频| 99er热精品视频| 秋霞av国产精品一区| 香蕉久久夜色精品国产使用方法 | а√天堂8资源中文在线| 日本欧美精品久久久| 天堂在线一区二区| 超碰手机在线观看| 日韩三级在线免费观看| 三上悠亚一区二区| 黄色三级中文字幕|