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:
interface IFigure {
height: number;
width: number;
color?: string;
}
Agora vamos criar um objeto rectangle e
exibir o valor de sua cor no console:
let 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:
let 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:
undefined
Crie uma interface IDate para um objeto
que armazena uma data: ano, mês e dia. Deixe
todas as propriedades do objeto serem opcionais.