Valfria egenskaper i gränssnitt i TypeScript

I ett gränssnitt kan man också definiera speciella valfria (frivilliga) egenskaper. De behövs för att inte begränsa ett objekt till en specifik uppsättning egenskaper. Samtidigt förbjuds användningen av egenskaper som inte ingår i gränssnittet. Valfria egenskaper definieras med hjälp av operatorn ?, placerad efter egenskapens namn.

Låt oss skapa ett gränssnitt IFigure, som sätter egenskaper för alla objekt-figurer. Låt color vara en valfri egenskap:

typescriptinterface IFigure {
  height: number;
  width: number;
  color?: string;
}

Nu skapar vi ett objekt rectangle och skriver ut värdet på dess färg i konsolen:

typescriptlet rectangle: IFigure = {
  height: 200,
  width: 300,
  color: 'red'
}

console.log(rectangle.color); // 'red'

Låt oss nu kontrollera om det blir ett fel om färg inte anges i objektet:

typescriptlet rectangle: IFigure = {
  height: 200,
  width: 300
}

console.log(rectangle.color);

Det blir inget fel och i konsolen kommer ett meddelande att visas om att färgen helt enkelt inte är definierad:

typescriptundefined
Задание 1

Skapa ett gränssnitt IDate för ett objekt som lagrar ett datum: år, månad och dag. Låt alla objektets egenskaper vara valfria.