Propriétés optionnelles des interfaces en TypeScript

Dans une interface, il est également possible de définir des propriétés spéciales optionnelles (facultatives). Elles sont nécessaires pour ne pas restreindre un objet à un ensemble spécifique de propriétés. En même temps, l'utilisation de propriétés qui ne font pas partie de l'interface est interdite. Les propriétés optionnelles sont définies à l'aide de l'opérateur ?, placé après le nom de la propriété.

Créons une interface IFigure, définissant les propriétés pour tous les objets-formes. Soit color une propriété optionnelle :

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

Maintenant, créons un objet rectangle et affichons la valeur de sa couleur dans la console :

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

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

Et maintenant, vérifions s'il y aura une erreur si la couleur n'est pas définie dans l'objet :

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

console.log(rectangle.color);

Il n'y aura pas d'erreur et la console affichera un message indiquant que la couleur n'est simplement pas définie :

typescriptundefined
Задание 1

Créez une interface IDate pour un objet stocker une date : l'année, le mois et le jour. Que toutes les propriétés de l'objet soient facultatives.