Opciona svojstva interfejsa u TypeScript

U interfejsu takođe možete definisati posebna opciona (neobavezna) svojstva. Ona su potrebna da se objekat ne ograniči određenim skupom svojstava. Pri tome je zabranjeno korišćenje svojstava koja nisu deo interfejsa. Opciona svojstva se definišu pomoću operatora ?, navedenog nakon imena svojstva.

Hajde da kreiramo interfejs IFigure, koji definiše svojstva za sve objekte-figure. Neka color bude opciono svojstvo:

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

Sada kreirajmo objekat rectangle i prikažimo vrednost njegove boje u konzoli:

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

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

A sada proverimo da li će biti greške, ako boja nije zadata u objektu:

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

console.log(rectangle.color);

Neće biti greške i u konzoli će se prikazati poruka da boja jednostavno nije definisana:

typescriptundefined
Задание 1

Napravite interfejs IDate za objekta, koji čuva datum: godinu, mesec i dan. Neka sva svojstva objekta budu neobavezna.