Хосиятҳои ихтиёрӣ дар интерфейси 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 барои объекте созед, ки санаро нигоҳ медорад: сол, моҳ ва рӯз. Бигзор ҳамаи хосиятҳои объект ихтиёрӣ бошанд.