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:
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:
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:
Een object van het type Student moet alle properties bevatten die gedefinieerd staan in het interface!
Een object van het type Student mag geen andere properties bevatten!
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:
Merk op:
in het JSON bestand kan je geen variabelen gebruiken. Je schrijft dus niet let student = ...
properties hebben quotes nodig rond hun namen. Het is dus
"name"
en nietname
je kan geen functies plaatsen in een JSON bestand. showIntroduction kan dus niet bestaan in het bestand
Last updated