TypeScript:
Gebruik van associatieve arrays
Hoe te:
Associatieve arrays maken en gebruiken in TypeScript is eenvoudig. Hier is een basishandleiding:
// Een associatieve array verklaren
let user: { [key: string]: string } = {};
// Gegevens toevoegen
user["name"] = "Jane Doe";
user["email"] = "[email protected]";
console.log(user);
Uitvoer:
{ name: 'Jane Doe', email: '[email protected]' }
Over sleutel-waardeparen itereren is ook gemakkelijk:
for (let key in user) {
console.log(key + ": " + user[key]);
}
Uitvoer:
name: Jane Doe
email: jane@example.com
En als je te maken hebt met een mix van gegevenstypen, komt het type systeem van TypeScript goed van pas:
let mixedTypes: { [key: string]: string | number } = {};
mixedTypes["name"] = "John Doe";
mixedTypes["age"] = 30;
console.log(mixedTypes);
Uitvoer:
{ name: 'John Doe', age: 30 }
Diepgaand
In TypeScript zijn wat we associatieve arrays noemen in wezen objecten. Historisch gezien, in talen zoals PHP, zijn associatieve arrays een fundamenteel type, maar JavaScript (en bij uitbreiding, TypeScript) gebruikt objecten voor dit doel. Deze aanpak is zowel een kracht als een beperking. Objecten bieden een zeer dynamische structuur voor het koppelen van strings aan waarden, maar ze zijn niet bedoeld om te worden gebruikt als ‘arrays’ in de traditionele zin. Bijvoorbeeld, je kunt geen arraymethoden zoals push
of pop
direct op deze objecten gebruiken.
Voor gevallen waar je geordende collecties van sleutel-waardeparen met array-achtige operaties nodig hebt, biedt TypeScript (en modern JavaScript) het Map
object:
let userMap = new Map<string, string>();
userMap.set("name", "Jane Doe");
userMap.set("email", "[email protected]");
userMap.forEach((value, key) => {
console.log(key + ": " + value);
});
Hoewel het type systeem van TypeScript en ES6-functies zoals Map
krachtige alternatieven bieden, is het begrijpen van hoe objecten als associatieve arrays te gebruiken nuttig voor scenario’s waar objectliteratuur efficiënter is of bij het werken met JSON-datastructuren. Het gaat erom het juiste gereedschap voor de klus te kiezen.