TypeScript: Objecten

We kunnen verschillende waarden groeperen door gebruik van objecten. Objecten bestaan uit properties waarbij elke property een waarde kan bevatten van een bepaald/ander type:

let student = {
  name: "George",
  age: 13,
  siblings: ["Jane","Geoff"],
  alive: true
}

Dit object bevat 4 properties: name (een string), age (een number), siblings (een array van strings) en alive (een boolean).

In TypeScript moeten we elke variabel voorzien van een type .Omdat we geen type hebben voor dit specifiek object, moeten we zelf een type voorzien. Hiervoor gebruiken we een interface. Voor objecten definieren we de interface als volgt:

interface Student {
  name: string;
  age: number;
  siblings: string[];
  alive: boolean
}

Een interface voor een object start met het keyword interface en dan een naam. Daarna plaatsen we tussen { } de verschillende properties en hun types.

Nu kunnen we bovenstaand object een type geven:

let student: Student = {
  name: "George",
  age: 13,
  siblings: ["Jane","Geoff"],
  alive: true
}

De volgorde van de properties is onbelangrijk. Bv. dit student object is ook geldig:

Properties aanspreken

We kunnen elke property individueel aanspreken:

Elke property kan je dus gebruiken zoals je een variabel aanspreekt/gebruikt.

Omdat een property gewoon data bevat (een string, een number,...), kan een property ook een functie bevatten:

De property showIntroduction bevat een functie. Je kan die dus uitvoeren zoals elke andere functie.

Let op: de interface komt niet meer overeen met dit object. Je zal de interface moeten aanpassen om de property function te bevatten. Hiervoor heb je een interface nodig die de functie beschrijft. Dit wordt uitgelegd in TypeScript: Functions

Optionele properties

Normaal zijn alle properties verplicht aanwezig:

Je kan properties optioneel maken door een ? achter de naam van de property te plaatsen:

Readonly properties

Net zoals const een variabel onveranderbaar maakt, kan je zorgen dat een property niet aangepast mag worden. Hiervoor gebruik je het keyword readonly

Je kan dus enkel waarden meegeven bij intialisatie van het object!

Objecten en functies

Objecten kunnen net zoals elk ander type meegegeven worden als parameters of teruggegeven worden als return waarde.

halloStudent vraagt een parameter van het type Student. Omdat de parameter dat type bevat, kan je ook de properties aanspreken in de functie:

giveMeGeorge maakt zelf een nieuw object aan dat ie teruggeeft als return waarde:

De return waarde bevat dus een geldig Student object.

JSON

Wanneer we data via APIs doorsturen of in bestanden opslaan, dan gebruiken we meestal JSON. JSON lijkt er op een JavaScript object, maar de schrijfwijze is een beetje anders.

Dit is een JavaScript object. Die steek je meestal in bv. een variabel:

JSON steek je meestal in een .json bestand. Bv:

Last updated

Was this helpful?