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 интерфейсин жасагыла. Объекттин бардык касиеттери милдеттүү эмес болсун.