¿Hay una manera de escribir una interfaz utilizando la abreviatura de propiedades con propiedades sub identital?

sunknudsen:

Mirando a escribir esta interfaz utilizando la abreviatura de propiedades Mondaya Sundaylos 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[] };

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=282936&siteId=1
Recomendado
Clasificación