Апцыянальныя ўласцівасці інтэрфейсу ў 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 для аб'екта, які захоўвае дату: год, месяц і дзень. Хай усе ўласцівасці аб'екта будуць неабавязковымі.