MST
星途 面试题库

面试题:TypeScript中enum类型的基础使用与联合类型

假设我们有一个表示一周中各天的enum类型如下: ```typescript enum Weekday { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } ``` 1. 请编写一个函数,接收一个Weekday类型的参数,并根据传入的日期返回相应的中文描述,例如传入Weekday.Monday返回“星期一”。 2. 现在需要扩展这个功能,让函数还能接收一个字符串类型的参数,该字符串需要是“上午”、“下午”、“晚上”其中之一,然后函数返回的描述需要结合日期和时段,比如传入Weekday.Monday和“上午”,返回“星期一下午”。请说明如何定义函数参数类型以及实现该函数。
13.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
  1. 实现返回日期中文描述的函数
function getWeekdayChinese(day: Weekday): string {
    const weekdayMap: { [key in Weekday]: string } = {
        [Weekday.Sunday]: '星期日',
        [Weekday.Monday]: '星期一',
        [Weekday.Tuesday]: '星期二',
        [Weekday.Wednesday]: '星期三',
        [Weekday.Thursday]: '星期四',
        [Weekday.Friday]: '星期五',
        [Weekday.Saturday]: '星期六'
    };
    return weekdayMap[day];
}
  1. 扩展功能,结合日期和时段
    • 定义函数参数类型: 函数需要接收一个Weekday类型的参数和一个字符串类型的参数,且字符串只能是“上午”、“下午”、“晚上”其中之一。可以使用联合类型来定义字符串参数类型。
type TimePeriod = '上午' | '下午' | '晚上';
- **实现扩展后的函数**:
function getWeekdayAndPeriodDescription(day: Weekday, period: TimePeriod): string {
    const weekdayMap: { [key in Weekday]: string } = {
        [Weekday.Sunday]: '星期日',
        [Weekday.Monday]: '星期一',
        [Weekday.Tuesday]: '星期二',
        [Weekday.Wednesday]: '星期三',
        [Weekday.Thursday]: '星期四',
        [Weekday.Friday]: '星期五',
        [Weekday.Saturday]: '星期六'
    };
    return `${weekdayMap[day]}${period}`;
}