identitalサブプロパティを持つプロパティの省略形を使用してインタフェースを記述する方法はありますか?

sunknudsen:

プロパティの省略形を使用して、このインタフェースを記述するために探しMondaySunday同一のサブプロパティを持っています。

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:

あなたはこのようにどこか共通のインタフェースを定義することができます。

interface DayDefinition {
  start: number;
  end: number;
}

interface Schedule {
  Monday: DayDefinition;
  Tuesday: DayDefinition;
  Wednesday: DayDefinition;
  Thursday: DayDefinition;
  Friday: DayDefinition;
  Saturday: DayDefinition;
  Sunday: DayDefinition;
  closed: string[]
}

それとも、さらにこれを短縮したい場合:あなたは週の可能日を記述するために労働組合を使用することができます。

interface DayDefinition {
  start: number;
  end: number;
}

type Day = 
  | 'Monday'
  | 'Tuesday'
  | 'Wednesday'
  | 'Thursday'
  | 'Friday'
  | 'Saturday'
  | 'Sunday';

type Schedule = {
  [K in Day]: DayDefinition;
} & { closed: Day[] };

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=282924&siteId=1