Propriedades opcionais de interface em TypeScript

Em uma interface, também é possível definir propriedades especiais opcionais. Elas são necessárias para não restringir um objeto a um conjunto específico de propriedades. Ao mesmo tempo, o uso de propriedades que não fazem parte da interface é proibido. Propriedades opcionais são definidas usando o operador ?, colocado após o nome da propriedade.

Vamos criar a interface IFigure, que define propriedades para todos os objetos de figuras. Deixe color ser uma propriedade opcional:

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

Agora vamos criar um objeto rectangle e exibir o valor de sua cor no console:

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

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

E agora vamos verificar se haverá um erro se a cor não for definida no objeto:

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

console.log(rectangle.color);

Não haverá erro e o console exibirá uma mensagem indicando que a cor simplesmente não está definida:

typescriptundefined
Задание 1

Crie uma interface IDate para um objeto que armazena uma data: ano, mês e dia. Deixe todas as propriedades do objeto serem opcionais.