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;
    };
  • 相关阅读:
    acm课程练习2--1002
    acm课程练习2--1001
    SDAU课程练习--problemQ(1016)
    SDAU课程练习--problemG(1006)
    SDAU课程练习--problemO(1014)
    SDAU课程练习--problemB(1001)
    SDAU课程练习--problemA(1000)
    SDAU课程练习--problemC
    SDAU课程练习--problemE
    不安全函数(转)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/13749769.html
Copyright © 2011-2022 走看看