TypeScripti liidese valikulised omadused

Liideses saab määrata ka erilisi valikulisi (mittekohustuslikke) omadusi. Neid on vaja selleks, et mitte piirata objekti kindla omaduste komplektiga. Samal ajal on keelatud nende omaduste kasutamine, mida pole liideses määratletud. Valikulised omadused määratakse kasutades operaatorit ?, mis pandakse omaduse nime järele.

Loome liidese IFigure, mis määrab kõikidele kujundite objektidele omadused. Olgu color valikuline omadus:

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

Nüüd loome objekti rectangle ja väljastame selle värvi väärtuse konsooli:

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

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

Ja nüüd kontrollime, kas tekib viga, kui me ei määra objekti värvi:

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

console.log(rectangle.color);

Viga ei teki ja konsooli väljastatakse teade, et värvi lihtsalt ei ole määratletud:

typescriptundefined
Задание 1

Tehke liides IDate objektile, mis salvestab kuupäeva: aasta, kuu ja päev. Olgu kõik objekti omadused valikulised.