Optionele eigenschappen van interfaces in TypeScript

In een interface kun je ook speciale optionele (niet-verplichte) eigenschappen instellen. Ze zijn nodig om het object niet te beperken tot een bepaalde set eigenschappen. Tegelijkertijd is het gebruik van eigenschappen die niet in de interface zitten, verboden. Optionele eigenschappen worden ingesteld met de operator ?, geplaatst achter de naam van de eigenschap.

Laten we een interface IFigure maken, die de eigenschappen voor alle object-figuren definieert. Laat color een optionele eigenschap zijn:

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

Laten we nu een object rectangle maken en de waarde van zijn kleur naar de console uitvoeren:

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

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

Laten we nu controleren of er een fout zal zijn als we geen kleur in het object opgeven:

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

console.log(rectangle.color);

Er zal geen fout zijn en in de console wordt een bericht weergegeven dat de kleur simpelweg niet gedefinieerd is:

typescriptundefined
Задание 1

Maak een interface IDate voor een object dat een datum opslaat: jaar, maand en dag. Laat alle eigenschappen van het object optioneel zijn.