Valgfrie egenskaber for interface i TypeScript
I et interface kan man også definere særlige
valgfrie (ikke-obligatoriske) egenskaber.
De er nødvendige for ikke at begrænse
et objekt til et bestemt sæt af egenskaber. Samtidig
forbydes brugen af egenskaber,
som ikke indgår i interfacet. Valgfrie
egenskaber defineres ved hjælp af operatoren ?,
placeret efter egenskabens navn.
Lad os oprette et interface IFigure,
som definerer egenskaber for alle objekter-figurer.
Lad color være en valgfri
egenskab:
interface IFigure {
height: number;
width: number;
color?: string;
}
Lad os nu oprette et objekt rectangle og
udskrive værdien af dets farve i konsollen:
let rectangle: IFigure = {
height: 200,
width: 300,
color: 'red'
}
console.log(rectangle.color); // 'red'
Lad os nu tjekke om der vil være en fejl, hvis farven ikke angives i objektet:
let rectangle: IFigure = {
height: 200,
width: 300
}
console.log(rectangle.color);
Der vil ikke være nogen fejl, og i konsollen vil der blive vist en besked om, at farven simpelthen ikke er defineret:
undefined
Lav et interface IDate for et objekt,
der gemmer en dato: år, måned og dag. Lad
alle egenskaber for objektet være valgfrie.