Treci la conținutul principal

TypeScript Keyof

keyof este un cuvânt cheie din TypeScript. El preia un tip de obiect și îți dă tipul cheilor acestuia.


keyof cu chei explicite

Când folosești keyof pe un tip de obiect care își enumeră proprietățile după nume, rezultatul este un tip uniune alcătuit din acele nume de proprietăți.

Exemplu

keyof Person devine uniunea "name" | "age". Transmiterea oricărui alt șir de caractere către funcție este o eroare.

Prompt
Arată cum keyof aplicat pe o interfață cu proprietăți denumite produce o uniune a acelor nume de proprietăți. Declară o interfață Person cu name: string și age: number, scrie o funcție care primește un Person și un nume de proprietate de tip keyof Person și afișează valoarea acelei proprietăți, apoi apeleaz-o cu o persoană numită Max, în vârstă de 27 de ani, și proprietatea "name".
Ieșire: program TypeScript și rezultatul capturat

keyof cu semnături de index

keyof funcționează și pe tipuri care au o semnătură de index. În acel caz îți dă tipul indexului.

Exemplu

Deoarece StringMap acceptă orice cheie de tip șir de caractere, keyof StringMap este pur și simplu string.

Prompt
Arată că keyof aplicat pe un tip cu o semnătură de index de tip șir de caractere se rezolvă la string. Definește un tip StringMap cu o semnătură de index [key: string]: unknown și o funcție care primește o cheie de tip keyof StringMap plus o valoare de tip șir de caractere și returnează un nou StringMap care conține acea pereche; exemplul doar declară, nu afișează nimic.
Ieșire: program TypeScript și rezultatul capturat