Volitelné vlastnosti rozhraní v TypeScript

V rozhraní lze také nastavit speciální volitelné (nepovinné) vlastnosti. Jsou potřeba, aby nebyl objekt omezen určitou sadou vlastností. Zároveň je zakázáno používat vlastnosti, které nejsou součástí rozhraní. Volitelné vlastnosti se nastavují pomocí operátoru ?, uvedeného za názvem vlastnosti.

Vytvořme rozhraní IFigure, které definuje vlastnosti všech objektů-tvarů. Nechť color je volitelnou vlastností:

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

Nyní vytvoříme objekt rectangle a vypíšeme hodnotu jeho barvy do konzole:

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

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

A nyní zkontrolujeme, zda nastane chyba, pokud barvu v objektu nenastavíme:

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

console.log(rectangle.color);

Nastane chyba a v konzoli se vypíše zpráva, že barva jednoduše není definována:

typescriptundefined
Задание 1

Vytvořte rozhraní IDate pro objekt, ukládající datum: rok, měsíc a den. Nechť všechny vlastnosti objektu jsou volitelné.