Het Record-type in TypeScript, uitgelegd met eigen keys

Record-type in TypeScript

TypeScript Record<K, V>: getypeerde opzoekobjecten uitgelegd | We.Inc

Bouw een Record<K, V>-type van uw eigen keys en zie het object dat het beschrijft. Leer wanneer Record beter is dan een index signature of een Map, en welke fouten het vangt.

Record<K, V> is een ingebouwd utility type voor een object waarvan de keys uit K komen en de waarden allemaal type V hebben. Geef het een union van string literals en de compiler eist dat elke genoemde key aanwezig is. Geef het gewoon string en het gedraagt zich als een open dictionary, net als een index signature.

Record in één oogopslag

Typ de keys die u wilt en kies een waardetype. De builder schrijft het Record-type, het gewone objecttype waarnaar het uitvouwt en een startobject met één regel per key, zodat u precies ziet waar de compiler u aan houdt voordat u het in uw code plakt.

Veelgestelde vragen

Is Record hetzelfde als een index signature?

Met een brede key zoals string wel: Record<string, number> en { [key: string]: number } beschrijven dezelfde vorm. Het verschil blijkt bij letterlijke keys. Een index signature kan niet eisen dat specifieke namen bestaan, terwijl Record<"a" | "b", number> zowel a als b vereist.

Wanneer gebruik ik een Map in plaats van een Record?

Gebruik een Map als keys vaak worden toegevoegd en verwijderd, als keys geen strings zijn of als u het aantal entries via size nodig hebt. Gebruik een Record voor een vaste set namen, voor configuratieobjecten en voor alles wat u door JSON.stringify haalt.

Waarom zegt TypeScript dat er een property ontbreekt in mijn Record?

Omdat het key-type een union is en het object één lid weglaat. tsc meldt bijvoorbeeld Property 'about' is missing in type '{ home: string; }'. Voeg de key toe, of wikkel het type in Partial als weglaten geldig is.

Bestaat Record tijdens runtime?

Nee. Het is alleen een type en verdwijnt als de code wordt gecompileerd. Het object dat u maakt is een gewoon JavaScript-object, dus de compiler kan niet voorkomen dat een serverresponse extra of ontbrekende keys heeft.

In welke TypeScript-versie kwam Record erbij?

Record kwam in TypeScript 2.1, samen met Partial, Readonly en Pick, dus elke huidige compiler heeft het.

Hoe Record is opgebouwd

Gesloten keys tegenover open keys

Record, index signature of Map

Patronen die u het vaakst gebruikt

Keys uit een as const-array

De array is de enige bron van waarheid. Voeg er een status aan toe en de compiler wijst naar de labeltabel tot u ook het label toevoegt.

Eén vlag per veld van een ander type

keyof maakt van een bestaand type de key-union, zodat het touched-object van een formulier altijd dezelfde velden noemt als het formulier.

Een open dictionary, veilig gelezen

Met noUncheckedIndexedAccess aan is lezen met een berekende key number | undefined, dus de fallback is verplicht in plaats van vergeten.

Record-typebuilder

Keys, gescheiden door komma's

Waardetype

Keys zijn optioneel (in Partial wikkelen)

Het type

Waarnaar het uitvouwt

Een startobject

Typ minstens één key. Keys moeten beginnen met een letter, _ of $.

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap