Opcjonalne właściwości interfejsu w TypeScript
W interfejsie można również definiować specjalne
opcjonalne (nieobowiązkowe) właściwości.
Są one potrzebne, aby nie ograniczać
obiektu do określonego zestawu właściwości. Jednocześnie
zabronione jest używanie właściwości,
które nie należą do interfejsu. Opcjonalne
właściwości definiuje się za pomocą operatora ?,
umieszczonego po nazwie właściwości.
Stwórzmy interfejs IFigure,
który definiuje właściwości dla wszystkich obiektów-figur.
Niech color będzie opcjonalną
właściwością:
interface IFigure {
height: number;
width: number;
color?: string;
}
Teraz stwórzmy obiekt rectangle i
wypiszmy wartość jego koloru w konsoli:
let rectangle: IFigure = {
height: 200,
width: 300,
color: 'red'
}
console.log(rectangle.color); // 'red'
A teraz sprawdźmy, czy będzie błąd, jeśli nie ustawimy koloru w obiekcie:
let rectangle: IFigure = {
height: 200,
width: 300
}
console.log(rectangle.color);
Błędu nie będzie i w konsoli pojawi się komunikat, że kolor po prostu nie jest zdefiniowany:
undefined
Stwórz interfejs IDate dla obiektu
przechowującego datę: rok, miesiąc i dzień. Niech
wszystkie właściwości obiektu będą opcjonalne.