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

用于 TypeScript 枚舉的實(shí)用輔助函數(shù)

開發(fā) 前端
在 TypeScript 中使用枚舉類型時(shí),下面這些輔助函數(shù)可能會(huì)很有用,趕緊來看一下吧!

在 TypeScript 中使用枚舉類型時(shí),下面這些輔助函數(shù)可能會(huì)很有用,趕緊來看一下吧!

輔助函數(shù)將以下面的枚舉為例進(jìn)行測試:

enum DayOfWeek {
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7,
}
type Enum = { [s: number]: string };

一 檢查枚舉是否包含某個(gè)key

該方法可以用來檢查一個(gè)枚舉中是否包含某個(gè)key,代碼如下:

function isEnumKey<T extends Enum>(enumSrc: T, key: unknown) : key is keyof T {
return Number.isInteger(enumSrc[key as keyof T]);
}

測試:

console.log(isEnumKey(DayOfWeek, DayOfWeek[DayOfWeek.Friday])); // true
console.log(isEnumKey(DayOfWeek, DayOfWeek[DayOfWeek.Monday])); // true
console.log(isEnumKey(DayOfWeek, "hello" )); // false

二 檢查枚舉是否包含某個(gè)value

該方法可以用來檢查一個(gè)枚舉中是否包含某個(gè)枚舉值,代碼如下:

function isEnumValue<T extends Enum>(enumSrc: T, value: unknown): value is T[keyof T] {
return Number.isInteger(enumSrc[enumSrc[value as keyof T] as any as keyof T]);
}

測試:

console.log(isEnumValue(DayOfWeek, DayOfWeek.Friday)); // true
console.log(isEnumValue(DayOfWeek, DayOfWeek.Monday)); // true
console.log(isEnumValue(DayOfWeek, 996)); // false

三 將枚舉轉(zhuǎn)化為key列表

該方法可以用來將枚舉轉(zhuǎn)化為key列表,也就是將所有的枚舉key存放在一個(gè)數(shù)組中,代碼如下:

function enumToKeys<T extends Enum>(enumSrc: T): (keyof T)[] {
return Object.keys(enumSrc).filter((key: keyof T | any) => isEnumKey(enumSrc, key)) as (keyof T)[];
}

測試:

console.log(enumToKeys(DayOfWeek));

輸出結(jié)果:

[
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday',
'Sunday'
]

四 將枚舉轉(zhuǎn)化為value列表

該方法可以用來將枚舉中所有的枚舉值提取出來,放在一個(gè)數(shù)組中,代碼如下:

function enumToValues<T extends Enum>(enumSrc: T): T[keyof T][] {
return enumToKeys(enumSrc)
.map((key: keyof T) => enumSrc[key]);
}

測試:

console.log(enumToValues(DayOfWeek));

輸出結(jié)果:

[ 1, 2, 3, 4, 5, 6, 7 ]

五 將枚舉值轉(zhuǎn)化為對(duì)應(yīng)的key

該方法可以通過枚舉值獲取枚舉中對(duì)應(yīng)的key,代碼如下:

function enumValueToKey<T extends Enum>(enumSrc: T, value: T[keyof T]): keyof T | undefined {
return (enumSrc as any)[value];
}

測試:

console.log(enumValueToKey(DayOfWeek, DayOfWeek.Friday)); // Friday
console.log(enumValueToKey(DayOfWeek, DayOfWeek.Monday)); // Monday
console.log(enumValueToKey(DayOfWeek, 996)); // undefined

六 將枚舉轉(zhuǎn)換為鍵值對(duì)數(shù)組

該方法可以用來將枚舉轉(zhuǎn)化為鍵值對(duì)數(shù)組,代碼如下:

function enumToEntries<T extends Enum>(enumSrc: T): [keyof T, T[keyof T]][] {
return enumToValues(enumSrc)
.map((value: T[keyof T]) =>
[enumValueToKey(enumSrc, value) as keyof T, value]);
}

測試:

console.log(enumToEntries(DayOfWeek));

輸出結(jié)果:

[
[ 'Monday', 1 ],
[ 'Tuesday', 2 ],
[ 'Wednesday', 3 ],
[ 'Thursday', 4 ],
[ 'Friday', 5 ],
[ 'Saturday', 6 ],
[ 'Sunday', 7 ]
]

七 將枚舉轉(zhuǎn)換為對(duì)象數(shù)組

該方法可以用來將枚舉轉(zhuǎn)化為對(duì)象數(shù)組,鍵值可以自定義,代碼如下:

function fromEnum<T extends Enum, C>(
enumSrc: T,
projection: (item: [keyof T, T[keyof T]], index: number, array: [keyof T, T[keyof T]][]) => C,
skip?: (value: [keyof T, T[keyof T]], index: number, array: [keyof T, T[keyof T]][]) => boolean
) {
let entries = enumToEntries(enumSrc);
if (skip) entries = entries.filter(skip);
return entries.map(projection);
}

測試:

interface Option<T> {
label: keyof T;
value: T[keyof T];
}
const options: Option<typeof DayOfWeek>[] = fromEnum(
DayOfWeek,
([label, value]: [keyof typeof DayOfWeek, DayOfWeek]) => ({
label,
value,
})
);
console.log(options);

輸出結(jié)果:

[
{ label: 'Monday', value: 1 },
{ label: 'Tuesday', value: 2 },
{ label: 'Wednesday', value: 3 },
{ label: 'Thursday', value: 4 },
{ label: 'Friday', value: 5 },
{ label: 'Saturday', value: 6 },
{ label: 'Sunday', value: 7 }
]
責(zé)任編輯:姜華 來源: 前端充電寶
相關(guān)推薦

2023-05-16 16:03:10

2023-08-07 16:07:42

2021-08-04 08:33:59

TypeScriptConst Readonly

2025-08-01 08:26:45

2021-05-21 13:36:46

iOSiPhone功能

2016-10-11 13:32:50

函數(shù)式TypeScriptJavascript

2014-01-02 16:06:03

PostgreSQL實(shí)用函數(shù)

2025-03-07 08:53:33

TypeScript普通枚舉反向映射

2016-09-30 09:43:17

JavascriptTypeScript函數(shù)式編程

2022-10-24 15:29:34

TypeScript開發(fā)程序類型

2023-02-28 15:20:31

TypeScript開發(fā)編程

2024-09-29 08:35:34

TypeScript枚舉安全性

2023-04-14 15:44:20

TypeScrip函數(shù)重載

2009-07-30 15:35:47

C#時(shí)間函數(shù)

2009-12-03 10:06:21

路由器功能介紹

2009-12-17 16:57:29

Ruby dot

2022-01-04 19:21:04

函數(shù)TypeScript重載

2022-04-26 09:01:39

實(shí)用工具類型TypeScript

2009-08-06 16:17:05

點(diǎn)對(duì)點(diǎn)消息隊(duì)列

2024-09-25 08:37:03

TypeScripessential工具類型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

91午夜理伦私人影院| 日韩一级二级三级精品视频| 牛人盗摄一区二区三区视频| 瑟瑟视频在线免费观看| 欧美在线黄色| 国产丝袜精品第一页| 奇米影音第四色| 青青青国内视频在线观看软件| 97se亚洲国产综合自在线不卡| 国产精品无av码在线观看| 欧美精品videos极品| 国产成人精品一区二区免费看京| 91精选在线观看| 国产极品尤物在线| 精精国产xxxx视频在线| 91麻豆swag| 成人三级视频在线观看一区二区| 中国一级特黄视频| 99国产精品久久久久久久 | 成人日韩av在线| 依依成人综合网| 午夜久久福利| 久久九九有精品国产23| 亚洲色成人网站www永久四虎| 亚洲一区 二区| 欧美日韩高清在线| 国产精品亚洲a| 国产v日韩v欧美v| 一区二区在线电影| 午夜啪啪免费视频| av女优在线| 国产亚洲精品超碰| 蜜桃臀一区二区三区| 丰满人妻一区二区三区无码av | 国产精品视频一区二区高潮| 精品91久久久| 国产精品v一区二区三区| 久久激情五月丁香伊人| 亚洲精品视频网址| 欧美精品一区二区三区中文字幕| 日韩精品免费视频| 久久性爱视频网站| 久久免费视频66| 精品免费日韩av| 免费黄色在线播放| 人人九九精品视频| 欧美xxxxxxxx| 美女流白浆视频| 97久久亚洲| 亚洲成年人在线播放| 永久免费未满蜜桃| 国产精品久久久久久久久久白浆| 精品国产亚洲一区二区三区在线观看| 超碰人人cao| 一区二区免费| 日韩电影大全免费观看2023年上| 无码精品一区二区三区在线播放 | 亚洲不卡一卡2卡三卡4卡5卡精品| 手机看片国产1024| 99久久国产免费看| 久久综合九色99| 国产在线色视频| 中文字幕高清一区| 中文字幕中文字幕99 | 一区二区三区在线免费视频| 欧美日韩中文字幕在线播放| 欧美xxxx免费虐| 欧美日韩精品二区| 成年人在线看片| 色综合一区二区日本韩国亚洲| 欧美久久久久久久久久| 蜜桃视频无码区在线观看| 国产厕拍一区| 亚洲欧美激情四射在线日| www.99热| 欧美精品播放| 欧美综合第一页| 中文字幕+乱码+中文| 国产尤物一区二区| 国产欧美日韩伦理| 超碰国产在线| 亚洲最大成人综合| 苍井空浴缸大战猛男120分钟| 国产麻豆一区| 精品噜噜噜噜久久久久久久久试看 | 免费一级片在线观看| 日韩午夜免费视频| 国产精品免费一区二区三区都可以| 国产乱叫456在线| 97成人超碰视| 潘金莲一级淫片aaaaa免费看| 国产黄色大片在线观看| 欧美亚洲综合久久| 亚洲av无码成人精品区| 国产亚洲一区二区三区不卡| 欧美精品亚州精品| 99久久久久久久久| 国产精品一级黄| 欧美在线一二三区| 欧美videosex性欧美黑吊| 色综合久久66| 91传媒理伦片在线观看| 日韩大片在线播放| 97国产精品久久| 亚洲中文字幕在线一区| 99久久精品国产精品久久| 综合国产精品久久久| 最新欧美色图| 精品99999| 激情五月激情综合| 久久一区激情| 国产伦精品一区二区三区四区视频 | 国产三级一区二区| 国产精品一线二线三线| 高清一区二区三区av| 亚洲男人的天堂在线播放| 国产盗摄一区二区三区在线| 奇米一区二区三区| 麻豆av一区二区| 国产美女情趣调教h一区二区| 欧美日韩国产免费| 谁有免费的黄色网址| 亚洲欧洲视频| 国产66精品久久久久999小说| 91porn在线观看| 色av成人天堂桃色av| 一级国产黄色片| 伊人久久亚洲影院| 亚洲一区二区三区视频| 美女隐私在线观看| 精品视频一区二区三区免费| 中文字幕一区二区三区人妻电影| 亚洲免费观看| 国产一区二区三区四区五区在线| 啪啪免费视频一区| 欧美精品日韩一区| 99久久精品久久亚洲精品| 日韩中文字幕不卡| 欧美一区二区福利| 日韩av中字| 亚洲欧洲午夜一线一品| 国产一级一级国产| 国产网站一区二区三区| 天天操天天爱天天爽| 激情五月综合| 国产精品高清在线| youjizz在线播放| 欧美三级韩国三级日本一级| 极品尤物一区二区| 蜜乳av一区二区| 亚洲视频小说| 国产日韩一区二区三免费高清| 久久精品国产久精国产一老狼| 91精品视频免费在线观看| 国产精品欧美一区二区三区| 在线观看日本一区二区| 围产精品久久久久久久| 91色p视频在线| 伊人福利在线| 亚洲第一综合天堂另类专| 中日韩黄色大片| 国产日韩欧美a| 亚洲涩涩在线观看| 欧美日韩第一区| 久久综合一区二区三区| 亚洲四虎影院| 久久亚洲精品视频| 精品国自产在线观看| 激情av一区二区| 中文字幕人妻一区二区三区在线视频| 美女爽到高潮91| 激情五月六月婷婷| 亚洲大奶少妇| 日韩美女免费观看| 黄色网在线播放| 精品国产1区二区| 欧美黄色一级大片| 最好看的中文字幕久久| 性欧美18—19sex性高清| 久久这里只有| 黄色网zhan| 亚洲欧美tv| 国产日韩欧美在线播放| 后进极品白嫩翘臀在线播放| 亚洲人成网7777777国产| 国产又粗又猛又爽又黄的| 亚洲成人av在线电影| 奇米网一区二区| 成人av网址在线观看| 中文字幕第36页| 国产精品va| 亚洲欧洲三级| 青青草原在线亚洲| 91精品国产自产在线老师啪| 天堂av在线网| 免费97视频在线精品国自产拍| 欧洲一级在线观看| 日韩精品专区在线影院重磅| 日韩欧美国产另类| 亚洲自拍与偷拍| 少妇的滋味中文字幕bd| av亚洲精华国产精华精| 手机在线免费毛片| 免费在线观看一区二区三区| 成年人午夜视频在线观看| 97欧美在线视频| 女同一区二区| 国产精品99久久免费观看| 91精品免费看| 中文字幕在线高清| 久久久久国产精品免费网站| 欧美jizzhd欧美| 国产亚洲精品久久久久久| 色窝窝无码一区二区三区| 91精品国产综合久久久久久| 波多野结衣视频免费观看| 精品国产成人av| 久久99久久久| 亚洲欧美日韩一区二区 | 一区二区在线观看av| 欧美成人另类视频| 久久久亚洲欧洲日产国码αv| 老熟女高潮一区二区三区| 久久精品久久综合| 激情五月亚洲色图| av不卡在线看| 久久精品国产sm调教网站演员| 综合亚洲视频| 天堂av免费看| 久久人体视频| 亚洲午夜精品久久久中文影院av | 少妇人妻在线视频| 极品尤物久久久av免费看| 欧美xxxx吸乳| 小说区亚洲自拍另类图片专区| 亚洲成人午夜在线| 日韩三级在线| 在线国产伦理一区| 欧美成免费一区二区视频| 亚洲一区二区三区欧美| 精品国产一区二区三区| 日本一区二区三不卡| 一区二区三区四区在线看| 久久综合九色综合网站| 亚洲理论电影片| 欧美二区在线看| 视频福利一区| 日本精品一区| 日韩中文在线电影| 亚洲自拍偷拍二区| 久久久久久久久久久妇女| 经典三级在线视频| 国自产拍偷拍福利精品免费一| 日本天堂免费a| 亚洲二区免费| 成年人免费在线播放| 久久一区精品| 污网站在线免费| 丁香婷婷综合五月| 蜜桃传媒一区二区亚洲av| 欧美激情在线观看视频免费| 国产美女网站视频| 亚洲精品日日夜夜| 亚洲精品午夜久久久久久久| 色偷偷久久一区二区三区| 中文字幕+乱码+中文乱码91| 欧美一区二区在线观看| 免费观看黄色av| 亚洲美女www午夜| av一区在线观看| 久久久精品在线观看| 成人影音在线| 国产经典一区二区| www久久久| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 欧美另类视频在线观看| 精品久久香蕉国产线看观看亚洲 | 日韩av二区在线播放| 成人av毛片在线观看| 成人aaaa免费全部观看| 大胸美女被爆操| 一区二区三区精品视频| 免费av网站在线| 欧美疯狂做受xxxx富婆| 特黄视频在线观看| 最近2019中文字幕mv免费看| 毛片在线导航| 国产区精品视频| 精品三级在线观看视频| 亚洲一区二区三区涩| 黄色综合网站| 欧美特级aaa| 成人av在线网| 看免费黄色录像| 色诱亚洲精品久久久久久| 99精品免费观看| 亚洲欧美中文日韩在线v日本| 色呦呦在线视频| 国产精品露脸av在线| 欧美性生活一级片| 中国 免费 av| 日本亚洲免费观看| 小毛片在线观看| 亚洲人吸女人奶水| 波多野结衣家庭主妇| 亚洲精品美女久久久| 18+视频在线观看| 国产精品视频久久| 欧美人妖在线| 美女扒开大腿让男人桶| 国产一区二区三区免费观看| 欧美黄色激情视频| 天天综合网天天综合色| 99国产精品欲| 色偷偷88888欧美精品久久久 | 国产午夜精品一区二区三区欧美 | 综合色中文字幕| 无码视频在线观看| 精品在线小视频| а√在线天堂官网| av激情久久| 亚洲香蕉av| 老司机午夜性大片| 中文字幕欧美区| 久久久蜜桃一区二区| 日韩精品一二三四区| 国产蜜臀av在线播放| 懂色一区二区三区av片| 91精品国产乱码久久久久久| 成人性生交免费看| 国产日本一区二区| 日本一本在线观看| 亚洲男人av在线| 一本大道色婷婷在线| 免费精品视频一区| 国产精品亚洲综合久久| 国产视频久久久久久| 亚洲一区在线视频观看| 亚洲黄色小说网址| 欧美丰满老妇厨房牲生活| 97久久亚洲| 欧美精品一区二区三区三州| 成人黄色av电影| 日韩黄色三级视频| 日韩精品中文字幕视频在线| 涩涩涩视频在线观看| 精品欧美一区二区精品久久| 国产精品永久| 国产精品密蕾丝袜| 欧美性受极品xxxx喷水| 一广人看www在线观看免费视频| 国产精品稀缺呦系列在线 | www精品久久| av在线不卡免费看| 日本免费在线观看视频| 中文字幕av一区二区| 亚洲人体在线| 国产精品va在线观看无码| 成人不卡免费av| 亚洲欧美偷拍一区| 日韩最新免费不卡| 日韩精品视频一区二区三区| 青青青在线观看视频| av电影在线观看完整版一区二区| 国产乱国产乱老熟| 最近2019中文字幕mv免费看| 亚洲精品影片| 国产一区二区网| 国产精品久久久久久久久搜平片 | 日韩欧美中文字幕一区二区| 亚洲欧洲日产国产网站| 成人av在线播放| 精品无码国模私拍视频| 欧美激情一区三区| 性色av蜜臀av| 日韩美女视频在线观看| 91精品啪在线观看国产18| 香蕉视频污视频| 欧美视频一二三区| 欧美1—12sexvideos| 欧美不卡三区| 国产精品一区二区三区四区| 可以免费看的av毛片| xxx欧美精品| 偷拍精品福利视频导航| 三区视频在线观看| 午夜精品视频一区| 亚洲免费视频一区二区三区| 国产精品一区二区三区四区五区| 视频一区中文字幕| 久久久久亚洲av无码专区| 国产一区二区免费| 97视频一区| 奇米影视四色在线| 激情懂色av一区av二区av| av在线下载| 亚洲国产精品一区二区第一页| 成人动漫一区二区三区| 国产精品久久久久精| 欧美最顶级丰满的aⅴ艳星|