Voliteľné vlastnosti rozhrania v TypeScript

V rozhraní je možné definovať špeciálne voliteľné vlastnosti. Sú potrebné na to, aby neobmedzovali objekt na konkrétnu množinu vlastností. Pri tom je zakázané používanie vlastností, ktoré nie sú súčasťou rozhrania. Voliteľné vlastnosti sa definujú pomocou operátora ?, uvedeného za menom vlastnosti.

Vytvorme rozhranie IFigure, ktoré definuje vlastnosti pre všetky objekty-figúry. Nech color je voliteľnou vlastnosťou:

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

Teraz vytvorme objekt rectangle a vypíšme hodnotu jeho farby do konzoly:

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

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

A teraz skontrolujme, či nastane chyba, ak nešpecifikujeme farbu v objekte:

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

console.log(rectangle.color);

Nastane chyba a v konzole sa vypíše správa, že farba nie je definovaná:

typescriptundefined
Задание 1

Vytvorte rozhranie IDate pre objekt, ktorý ukladá dátum: rok, mesiac a deň. Nech všetky vlastnosti objektu sú voliteľné.