Proprietățile opționale ale interfeței în TypeScript

În interfață se pot defini și proprietăți speciale opționale (facultative). Acestea sunt necesare pentru a nu limita obiectul la un anumit set de proprietăți. În același timp, este interzisă utilizarea proprietăților care nu fac parte din interfață. Proprietățile opționale sunt definite folosind operatorul ?, indicat după numele proprietății.

Să creăm interfața IFigure, care definește proprietățile pentru toate obiectele-figură. Fie color o proprietate opțională:

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

Acum să creăm obiectul rectangle și să afișăm valoarea culorii sale în consolă:

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

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

Și acum să verificăm dacă va fi o eroare, dacă nu setăm culoarea în obiect:

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

console.log(rectangle.color);

Nu va fi nicio eroare și în consolă va fi afișat mesajul că culoarea pur și simplu nu este definită:

typescriptundefined
Задание 1

Creați o interfață IDate pentru un obiect, care stochează data: anul, luna și ziua. Fie toate proprietățile obiectului să fie opționale.