TypeScript interfeisa opcionālās īpašības

Interfeisā var arī definēt īpašas opcionālās (neobligātās) īpašības. Tās ir nepieciešamas, lai neierobežotu objektu ar noteiktu īpašību kopu. Tajā pašā laikā aizliegts ir to īpašību izmantošana, kuras nav iekļautas interfeisā. Opcionālās īpašības tiek definētas, izmantojot operatoru ?, kas norādīts pēc īpašības nosaukuma.

Izveidosim interfeisu IFigure, kas nosaka īpašības visiem objektiem-formām. Lai color būtu opcionāla īpašība:

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

Tagad izveidosim objektu rectangle un izvadīsim tā krāsas vērtību konsolē:

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

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

Tagad pārbaudīsim, vai radīsies kļūda, ja objektā nenorādīsim krāsu:

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

console.log(rectangle.color);

Kļūda neradīsies un konsolē tiks izvadīts ziņojums, ka krāsa vienkārši nav definēta:

typescriptundefined
Задание 1

Izveidojiet interfeisu IDate objektam, kas glabā datumu: gadu, mēnesi un dienu. Lai visas objekta īpašības būtu neobligātas.