Hice una función que acepta dos argumentos, datos y formato. Estoy tratando de hacer ENUM (FormatOptions) para el argumento llamado "formato". Sin embargo, aquí hay un error:
El argumento de tipo '"HH:MM"' no se puede asignar al parámetro de tipo 'FormatOptions'
¿Cómo escribir el ENUM correcto para el segundo argumento? Aquí está Playground en TypeScript Click
Código:
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');En lugar de enum , puede usar 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');