Valgfrie egenskaber for interface i TypeScript

I et interface kan man også definere særlige valgfrie (ikke-obligatoriske) egenskaber. De er nødvendige for ikke at begrænse et objekt til et bestemt sæt af egenskaber. Samtidig forbydes brugen af egenskaber, som ikke indgår i interfacet. Valgfrie egenskaber defineres ved hjælp af operatoren ?, placeret efter egenskabens navn.

Lad os oprette et interface IFigure, som definerer egenskaber for alle objekter-figurer. Lad color være en valgfri egenskab:

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

Lad os nu oprette et objekt rectangle og udskrive værdien af dets farve i konsollen:

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

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

Lad os nu tjekke om der vil være en fejl, hvis farven ikke angives i objektet:

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

console.log(rectangle.color);

Der vil ikke være nogen fejl, og i konsollen vil der blive vist en besked om, at farven simpelthen ikke er defineret:

typescriptundefined
Задание 1

Lav et interface IDate for et objekt, der gemmer en dato: år, måned og dag. Lad alle egenskaber for objektet være valgfrie.