[Typescript] Enum: Numeric Enums and Reverse Mappings
typescript and Enum reverse NUMERIC
2023-09-14 09:00:47 时间
Let's say we have enum defined as such:
export enum WeekDayEnum { sunday = 0, monday, tuseday, wednesday, thursday, friday, saturday, } export type DayOfWeek = | "monday" | "tuseday" | "wednesday" | "thursday" | "friday" | "saturday" | "sunday";
Usage 1: pass number value as lookup for string key
export const getToday = (_date?: Date) => { const date: Date = _date || new Date(); const year = date.getFullYear(); const month = date.getMonth(); const day = date.getDate(); return new Date(year, month, day); }; export const isSameWeekDay = (day: DayOfWeek, _date?: Date) => { const today = getToday(_date).getDay(); return WeekDayEnum[today] === day; };
'today' is a number type, so :
WeekDayEnum[today] // 'monday'
usage 2: pass string key to lookup number value
const getTodayOpeningTime = ( timeTable: WeeklyTimeTableVM[] ): WeeklyTimeTableVM => { const todayNum = getToday().getDay() as weeksNumber; const todayStr = WeekDayEnum[todayNum]; return timeTable.find((day) => day[0] === todayStr) as WeeklyTimeTableVM; };
相关文章
- 计算时间差工具类(TypeScript/JavaScript)
- Typescript教程_安装typescript
- ESLint: Typescript + React + TSX 集成
- Getting Started: Ionic + Capacitor + React + Typescript + Android
- TypeScript基础知识
- 【说站】微软官方发布TypeScript 4.4版本
- 「使用 webpack5从0到1搭建React+TypeScript 项目环境」1. React 与 TypeScript 集成
- Flow 与 Typescript:哪个更适合你的项目?
- 类型体操:探究 TypeScript 内置高级类型
- 调查:React 仍然是使用最广泛的前端框架,TypeScript 是优先选项
- 开心档之TypeScript 联合类型
- Node.js脚手架开发完全指南「TypeScript版」
- 在TypeScript中使用装饰器
- 多条件查询MySQL中使用And多条件查询的步骤(mysql中and)
- MySQL中AND的使用方法解析(mysql中and的用法)
- MySQL中AND的使用方法及含义解析(mysql中and的含义)
- MySQL中的AND逻辑操作符是什么(mysql中and是什么)
- and的区别Oracle数据库中的OR与AND的差异(oracle中or和)
- Oracle中使用AND运算符的示例分析(oracle中and用法)