zoukankan      html  css  js  c++  java
  • [Typescript] Enum: Numeric Enums and Reverse Mappings

    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;
    };
  • 相关阅读:
    学习心得——day2
    学习心得——day3
    学习心得——day1
    Android JNI so库的开发
    android 删除相册图片并同步到图库
    使用AccessibilityService执行开机自启动
    UDP Server
    uicode编码解码
    GreenDao的使用
    java之并发编程线程池的学习
  • 原文地址:https://www.cnblogs.com/Answer1215/p/13749769.html
Copyright © 2011-2022 走看看