枚举:类型的参数'&quort; hh:mm&quot&quot'不能分配给类型的参数。

发布于 2025-02-04 09:52:44 字数 1325 浏览 2 评论 0原文

我做出了一个接受两个参数数据和格式的函数。我正在尝试为称为“格式”的参数制作枚举(格式化)。但是,这是一个错误:

类型'“ HH:MM”'的参数不能分配给类型的参数 “格式化”

如何为第二个参数编写正确的枚举? Here is Playground on TypeScript Click

Code :

const basicTime: any = {
  year: 'numeric',
  month: 'short',
  day: '2-digit',
  hour: 'numeric',
  minute: 'numeric',
};

const hoursMinutes: any = {
  hour: 'numeric',
  minute: 'numeric',
};

enum FormatOptions {
  HoursMinutes = 'HH:MM',
  MonthDayYear = 'MM/DD/YYYY',
};

const dateFormat = (date: Date, format: FormatOptions) => {
  if (format === 'HH:MM') {
    return new Date(date).toLocaleString('en-US', hoursMinutes);
  }

  return new Date(date).toLocaleString('en-US', basicTime);
};

dateFormat(new Date, 'HH:MM');

I made a function that accepts two arguments data and format. I'm trying to make ENUM(FormatOptions) for argument called "format". However, here is an error:

Argument of type '"HH:MM"' is not assignable to parameter of type
'FormatOptions'

How to write the correct ENUM for 2nd argument?
Here is Playground on TypeScript Click

Code:

const basicTime: any = {
  year: 'numeric',
  month: 'short',
  day: '2-digit',
  hour: 'numeric',
  minute: 'numeric',
};

const hoursMinutes: any = {
  hour: 'numeric',
  minute: 'numeric',
};

enum FormatOptions {
  HoursMinutes = 'HH:MM',
  MonthDayYear = 'MM/DD/YYYY',
};

const dateFormat = (date: Date, format: FormatOptions) => {
  if (format === 'HH:MM') {
    return new Date(date).toLocaleString('en-US', hoursMinutes);
  }

  return new Date(date).toLocaleString('en-US', basicTime);
};

dateFormat(new Date, 'HH:MM');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

污味仙女 2025-02-11 09:52:44

而不是enum您可以使用Union

const basicTime: Intl.DateTimeFormatOptions = {
  year: 'numeric',
  month: 'short',
  day: '2-digit',
  hour: 'numeric',
  minute: 'numeric',
};

const hoursMinutes: Intl.DateTimeFormatOptions = {
  hour: 'numeric',
  minute: 'numeric',
};


type FormatOptions = 'HH:MM' | 'MM/DD/YYYY'


const dateFormat = (date: Date, format: FormatOptions) => {
  if (format === 'HH:MM') {
    return new Date(date).toLocaleString('en-US', hoursMinutes);
  }

  return new Date(date).toLocaleString('en-US', basicTime);
};

dateFormat(new Date(), 'HH:MM');

Instead of enum you can use union:

const basicTime: Intl.DateTimeFormatOptions = {
  year: 'numeric',
  month: 'short',
  day: '2-digit',
  hour: 'numeric',
  minute: 'numeric',
};

const hoursMinutes: Intl.DateTimeFormatOptions = {
  hour: 'numeric',
  minute: 'numeric',
};


type FormatOptions = 'HH:MM' | 'MM/DD/YYYY'


const dateFormat = (date: Date, format: FormatOptions) => {
  if (format === 'HH:MM') {
    return new Date(date).toLocaleString('en-US', hoursMinutes);
  }

  return new Date(date).toLocaleString('en-US', basicTime);
};

dateFormat(new Date(), 'HH:MM');

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文