sunknudsen:
Mirando a escribir esta interfaz utilizando la abreviatura de propiedades Monday
a Sunday
los cuales tienen propiedades idénticas sub.
interface Day {
start: number
end: number
}
interface Schedule {
Monday: Day
Tuesday: Day
Wednesday: Day
Thursday: Day
Friday: Day
Saturday: Day
Sunday: Day
closed: string[]
}
DaGardner:
Se puede definir la interfaz común en otro lugar de esta manera:
interface DayDefinition {
start: number;
end: number;
}
interface Schedule {
Monday: DayDefinition;
Tuesday: DayDefinition;
Wednesday: DayDefinition;
Thursday: DayDefinition;
Friday: DayDefinition;
Saturday: DayDefinition;
Sunday: DayDefinition;
closed: string[]
}
O si desea acortar este aún más: se puede usar una unión para describir los posibles días de la semana:
interface DayDefinition {
start: number;
end: number;
}
type Day =
| 'Monday'
| 'Tuesday'
| 'Wednesday'
| 'Thursday'
| 'Friday'
| 'Saturday'
| 'Sunday';
type Schedule = {
[K in Day]: DayDefinition;
} & { closed: Day[] };