Опционални својства на интерфејсот во TypeScript

Во интерфејсот исто така може да се поставуваат посебни опционални (незадолжителни) својства. Тие се потребни за да не се ограничи објектот на одреден сет на својства. При тоа е забрането користењето на својства кои не се вклучени во интерфејсот. Опционалните својства се поставуваат со помош на операторот ?, назначен после името на својството.

Ајде да создадеме интерфејс IFigure, кој ги поставува својствата на сите објекти-фигури. Нека color биде опционално својство:

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

Сега да создадеме објект rectangle и да ја испечатиме вредноста на неговата боја во конзола:

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

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

А сега да провериме дали ќе има грешка, ако не се зададе боја во објектот:

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

console.log(rectangle.color);

Нема да има грешка и во конзолата ќе се испечати порака дека бојата едноставно не е дефинирана:

typescriptundefined
Задание 1

Направете интерфејс IDate за објект, кој чува датум: година, месец и ден. Нека сите својства на објектот бидат незадолжителни.