Valfria egenskaper i gränssnitt i TypeScript
I ett gränssnitt kan man också definiera speciella
valfria (frivilliga) egenskaper.
De behövs för att inte begränsa
ett objekt till en specifik uppsättning egenskaper. Samtidigt
förbjuds användningen av egenskaper
som inte ingår i gränssnittet. Valfria
egenskaper definieras med hjälp av operatorn ?,
placerad efter egenskapens namn.
Låt oss skapa ett gränssnitt IFigure,
som sätter egenskaper för alla objekt-figurer.
Låt color vara en valfri
egenskap:
interface IFigure {
height: number;
width: number;
color?: string;
}
Nu skapar vi ett objekt rectangle och
skriver ut värdet på dess färg i konsolen:
let rectangle: IFigure = {
height: 200,
width: 300,
color: 'red'
}
console.log(rectangle.color); // 'red'
Låt oss nu kontrollera om det blir ett fel om färg inte anges i objektet:
let rectangle: IFigure = {
height: 200,
width: 300
}
console.log(rectangle.color);
Det blir inget fel och i konsolen kommer ett meddelande att visas om att färgen helt enkelt inte är definierad:
undefined
Skapa ett gränssnitt IDate för ett objekt
som lagrar ett datum: år, månad och dag. Låt
alla objektets egenskaper vara valfria.