精品欧美一区二区三区在线观看 _久久久久国色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)

免费在线视频观看| 中文字幕第21页| 中文字幕在线播放日韩| 日韩在线视屏| 欧美一级日韩不卡播放免费| 4444在线观看| 网站黄在线观看| 日韩国产精品大片| 久久资源免费视频| 扒开伸进免费视频| 三上悠亚一区二区| 亚洲日本丝袜连裤袜办公室| 国产精品久久久久久久小唯西川| 日本学生初尝黑人巨免费视频| 亚洲精品国产setv| 欧美老人xxxx18| 久久视频这里有精品| 国产精品一二三区视频| 狠狠色综合播放一区二区| 欧美黄色性视频| 女尊高h男高潮呻吟| 成年永久一区二区三区免费视频| 亚洲精品视频在线看| 欧美激情导航| 国产激情视频在线播放| 老鸭窝毛片一区二区三区| 久久久国产精品x99av| 人妻体内射精一区二区三区| 在线看欧美视频| 亚洲图片欧美视频| 在线视频不卡一区二区| 午夜视频www| 国产真实乱偷精品视频免| 欧美亚洲在线观看| 91麻豆精品久久毛片一级| 国产精品自在线拍| 欧美日韩国产乱码电影| 青青青免费在线| 无遮挡的视频在线观看| 91丨porny丨在线| 51国偷自产一区二区三区| 亚洲欧美日韩综合一区| 国产又大又黄的视频| 国产精品一页| 欧美极品第一页| 国产人与禽zoz0性伦| 午夜先锋成人动漫在线| 日韩女优毛片在线| 污污的视频免费| 男人皇宫亚洲男人2020| 亚洲国产精品视频| 精品一区二区三区毛片| 午夜国产福利在线| 国产亚洲精品久| 麻豆91蜜桃| 日韩在线视频免费| 高清不卡在线观看| 91在线|亚洲| 一级片视频播放| 日韩成人一区二区三区在线观看| 午夜精品福利电影| 久久久久黄色片| 日韩综合精品| 色伦专区97中文字幕| 丰满少妇高潮一区二区| 少妇久久久久| 亚洲毛片在线观看.| 久久国产精品无码一级毛片| 国产亚洲成av人片在线观黄桃| 欧美大片一区二区| 久久久久亚洲av无码专区首jn| 99精品女人在线观看免费视频 | 亚洲在线视频福利| av手机免费看| 国产精品亚洲人在线观看| 91夜夜未满十八勿入爽爽影院| 97人妻人人澡人人爽人人精品| 久久99国产精品免费| 91老司机精品视频| 91精品国自产| 国产一二三精品| 99久久精品无码一区二区毛片 | 蜜桃av一区二区在线观看 | 天天综合网站| 欧美色电影在线| 欧美一级xxxx| 深夜福利一区| 精品一区二区三区三区| 99久久人妻无码精品系列| 国产精品一在线观看| 中文字幕精品久久久久| 日本免费网站视频| 国产精品videossex久久发布| 久久久久久久久久久免费精品| 日韩欧美中文字幕一区二区| 午夜一区不卡| 国产精品中文字幕久久久| 97人妻精品一区二区三区软件 | 阿v免费在线观看| 国产精品久久久久久久久晋中| 亚洲日本精品| free性欧美| 色国产综合视频| 999在线精品视频| 另类图片第一页| 中文字幕亚洲欧美在线| 特级片在线观看| 免费精品视频| 91福利视频导航| 极品美乳网红视频免费在线观看 | 末成年女av片一区二区下载| 91福利在线导航| 性chinese极品按摩| 亚洲精品无码久久久| 黄色av网址在线免费观看| 国产精品一区二区三区四区| 国产日韩欧美一区二区三区四区| 欧美大片aaa| 亚洲日本韩国一区| 国产a级片免费观看| 精品国产18久久久久久二百| 亚洲乱码国产乱码精品精天堂| 日韩在线视频免费看| 一区二区高清| 成人黄色短视频在线观看| 欧美孕妇性xxxⅹ精品hd| 亚洲欧洲精品天堂一级| 99精品视频播放| 影音先锋欧美激情| 日韩有码在线电影| 久久久久久少妇| 国产98色在线|日韩| 亚洲国产另类久久久精品极度| 毛片电影在线| 日韩欧美一区二区视频| 四虎影视1304t| 久久久一二三| 精品国产一区二区三区四区精华| 成人a在线视频免费观看| 欧美主播一区二区三区| 51自拍视频在线观看| 成人精品久久| 欧美一级电影免费在线观看| 丰满少妇被猛烈进入| 自拍偷拍欧美激情| 天美星空大象mv在线观看视频| 噜噜噜狠狠夜夜躁精品仙踪林| 欧美www在线| 亚洲天堂手机在线| 日本一区二区三级电影在线观看| 一本大道熟女人妻中文字幕在线| 51精品国产| 久久成人在线视频| 一级片在线观看视频| xfplay精品久久| 国产精品三级一区二区| 亚洲ww精品| 中文字幕在线亚洲| 中文字幕av网站| 国产精品色噜噜| 在线免费观看av的网站| 精品久久久中文字幕| 国产va免费精品高清在线| 婷婷在线免费视频| 午夜视频一区在线观看| 中文字幕乱码一区| 一区二区国产精品| 欧美中文娱乐网| 欧美日韩视频免费观看| 夜夜嗨av一区二区三区免费区| 人妻丰满熟妇av无码区| 久久男人中文字幕资源站| 黄色影院一级片| 国产不卡一区| 国产精品美女免费视频| 欧美被日视频| 欧美一区二区在线播放| 久久亚洲精品大全| 99久久免费精品高清特色大片| 国产视频一视频二| 亚洲免费观看高清完整版在线观| 国产精品91久久| 午夜视频成人| 日韩女优av电影| 国产做受高潮漫动| 久久精品视频免费观看| 中文久久久久久| 国产精品7m凸凹视频分类| 92看片淫黄大片看国产片| 天天色天天射天天综合网| 精品国产乱子伦一区| 天天操天天干视频| 国产欧美一区二区三区在线看蜜臀| 亚洲一级片免费| 亚洲美女视频| 精选一区二区三区四区五区| 欧美电影免费看| 亚洲国产精品电影| 最近日韩免费视频| 亚洲已满18点击进入久久| 国产精品亚洲无码| 韩国理伦片一区二区三区在线播放| 欧美美女黄色网| 偷窥自拍亚洲色图精选| 国产一区二区丝袜| av在线网页| 中文字幕亚洲天堂| 天天干天天操av| 欧美年轻男男videosbes| 中文字幕一区二区三区手机版| 国产婷婷一区二区| 一个人看的视频www| 亚洲免费在线| 红桃一区二区三区| 九九在线高清精品视频| 亚洲一区二区三区在线免费观看| 日本不卡1234视频| 九九热这里只有在线精品视| 电影在线高清| 亚洲精品久久久久| 国产日韩欧美视频在线观看| 亚洲午夜久久久久中文字幕久| 中文字幕免费高清| 国产精品99久久久久久宅男| 亚洲人成无码网站久久99热国产 | 欧美另类变人与禽xxxxx| 久久久精品99| 国产精品网站导航| 老鸭窝一区二区| 成人午夜激情片| 五月天视频在线观看| 亚洲免费影院| 欧美成人三级在线视频| 亚洲国产精品成人| 亚洲看片网站| 免费精品国产的网站免费观看| 成人自拍网站| 免费观看性欧美大片无片| 国产91|九色| 91美女主播在线视频| 久国内精品在线| 国产精品剧情| 日韩中文字幕网址| 韩国精品视频| 亚洲欧美www| 亚洲三区在线播放| 亚洲精品ady| 天堂在线视频网站| 欧美精品一区二区在线播放| www.狠狠干| 日韩欧美国产一区在线观看| 国产三级漂亮女教师| 在线电影一区二区三区| 91免费视频播放| 欧美精品 日韩| 一级淫片免费看| 欧美情侣在线播放| 亚洲最大成人av| 欧美美女一区二区三区| 亚洲最大成人在线视频| 欧美男同性恋视频网站| 国产美女三级无套内谢| 在线播放欧美女士性生活| 国产又黄又粗又硬| 91精品婷婷国产综合久久竹菊| 国产又黄又大又粗的视频| 91麻豆精品国产91久久久久久| 一道本无吗一区| 欧美精品日韩综合在线| 国内精品久久久久久久久久久| 欧美一区日本一区韩国一区| 亚洲av综合色区无码一二三区| 日韩欧美国产一区二区三区| 亚洲AV无码国产精品午夜字幕| 欧美不卡激情三级在线观看| 开心激情综合网| 亚洲天堂久久av| 婷婷成人激情| 欧美裸体xxxx极品少妇| 国产经典三级在线| 91av在线播放视频| 成人黄色免费短视频| 国产精品美女www爽爽爽视频| 色综合视频一区二区三区日韩| 国产精品中文字幕在线| 国产在线不卡一区二区三区| 91在线观看免费高清完整版在线观看| 在线观看视频一区二区三区| 久久久一本精品99久久精品66| 久久99国产精品视频| 天天爽天天狠久久久| 午夜精品视频| 欧美 日韩 亚洲 一区| 日韩国产精品大片| 中文字幕无人区二| 久久精品视频一区二区三区| 色在线观看视频| 精品久久久久久中文字幕| 国产亚洲欧美日韩高清| 4438成人网| 偷拍精品一区二区三区| 日韩一区av在线| h片在线观看下载| 国产日韩在线播放| 久久影视三级福利片| 亚洲午夜精品久久| 亚洲国产一区二区精品专区| 精品久久久久久中文字幕2017| 国产精品综合二区| 天天躁日日躁aaaa视频| 亚洲精选在线视频| а中文在线天堂| 欧美xxxxxxxx| 婷婷成人激情| 日韩免费在线播放| 操欧美女人视频| 亚洲精品在线免费看| 一本色道久久| 亚洲综合20p| 国产日韩亚洲欧美综合| 国产无遮挡又黄又爽在线观看| 欧美网站一区二区| 无码精品黑人一区二区三区| 久久精品国产v日韩v亚洲| 日韩伦理在线| 超碰97国产在线| 日本精品三区| 免费在线a视频| 丰满岳乱妇一区二区三区| 欧美一区二区三区观看| 日韩欧美中文免费| 好男人www在线视频| 色噜噜国产精品视频一区二区 | 欧美色图激情小说| 1024av视频| 成人综合激情网| 欧美黑人一级片| 欧美精品国产精品| av在线天堂| 日本中文字幕不卡免费| 久久亚州av| 欧日韩免费视频| 国产精品一区专区| 天天看天天摸天天操| 欧美午夜理伦三级在线观看| 欧美拍拍视频| 国产成人高清激情视频在线观看 | 成人看片在线| 欧美日韩精品免费观看视频完整| 国产无遮挡猛进猛出免费软件 | 日韩亚洲电影在线| 免费在线毛片网站| 国产精品一区久久久| 成人精品久久| 自拍偷拍一区二区三区四区| 国产午夜精品一区二区| 久久青青草原亚洲av无码麻豆| 日韩成人中文字幕在线观看| 538在线精品| 国产精品免费视频一区二区| 欧美三级在线| 国产精久久久久| 国产精品萝li| 一级黄色片网站| 久久精品国产免费观看| 婷婷丁香久久| 国产在线拍揄自揄拍无码| 国产一区二区三区精品欧美日韩一区二区三区 | 性欧美xxxx交| 美女扒开腿让男人桶爽久久动漫| www.日本在线播放| 91视频91自| 自拍偷拍精品视频| 久久精品视频导航| 一本一道久久a久久| 免费看欧美黑人毛片| 成人精品在线视频观看| 欧美一区二区激情视频| 亚洲裸体xxxx| 亚洲青青一区| av片在线免费| 91农村精品一区二区在线| 婷婷激情五月综合| 久久中文字幕视频| 免费看久久久| 一区二区在线播放视频| 亚洲三级理论片| 午夜性色福利影院| 国产精品久久久av久久久| 欧美精品国产| 久久免费手机视频| 亚洲国产精品va在线看黑人| 欧美在线一级| 久色视频在线播放| 国产精品久久久久久久久图文区 | 日本黄网站免费| 亚洲综合免费观看高清完整版在线| 国产无套粉嫩白浆在线2022年| 亚洲www永久成人夜色| 视频在线在亚洲|