TypeScript Academy · Lezione

keyof e tipi di accesso indicizzato

Acceda dinamicamente ai tipi delle proprietà degli oggetti con keyof e T[K].

Lezione 1 di 413 passaggi

keyof e tipi di accesso indicizzato è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 4 lezioni in totale.

Benvenuto

keyof produce un'unione dei nomi delle proprietà di un tipo oggetto. I tipi di accesso indicizzato (T[K]) recuperano il tipo associato a una chiave di proprietà specifica.

Nozioni di base su keyof

keyof T restituisce un'unione di tutti i tipi dei nomi delle proprietà di T.
interface User { id: number; name: string; email: string; }
type UserKeys = keyof User; // 'id' | 'name' | 'email'

Accesso indicizzato: T[K]

Usi T[K] per ottenere il tipo della proprietà K nel tipo T.
type IdType = User['id'];   // number
type NameType = User['name']; // string

Accesso dinamico alle proprietà

Combini keyof e i generics per creare funzioni di accesso alle proprietà con sicurezza dei tipi.
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}
const name = getProperty(user, 'name'); // string

keyof con typeof

Usi typeof su un valore e poi keyof per ottenere i nomi delle sue proprietà senza dichiarare un'interfaccia.
const config = { host: 'localhost', port: 3000 };
type ConfigKey = keyof typeof config; // 'host' | 'port'

Unione di tipi indicizzati

Indicizzi un tipo con un'unione di chiavi per ottenere l'unione dei relativi tipi di valore.
type NumericValues = User['id' | 'age']; // number | number = number

keyof sugli array

keyof applicato a un tipo array restituisce i tipi degli indici dell'array oltre ai nomi dei metodi dell'array.
type ArrKey = keyof string[]; // number | 'length' | 'push' | ...
type Element = string[][number]; // string

Accesso indicizzato ricorsivo

Concateni i tipi di accesso indicizzato per gli oggetti annidati.
type Address = { city: string; zip: string };
type Profile = { address: Address };
type City = Profile['address']['city']; // string

Vincoli con keyof

Usi K extends keyof T come vincolo generico per garantire che K sia una chiave valida di T.
function setProperty<T, K extends keyof T>(obj: T, key: K, value: T[K]): void {
  obj[key] = value;
}

I tipi mappati usano keyof

I tipi mappati iterano su keyof T per trasformare i tipi oggetto.
type Readonly2<T> = { readonly [K in keyof T]: T[K] };

keyof nei tipi condizionali

keyof è potente nei tipi condizionali per estrarre gruppi di chiavi specifici.
type StringKeys<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];

Verifica rapida

Che cosa restituisce `User['name']` se `interface User { name: string }`?

Riepilogo

keyof estrae i nomi delle proprietà come tipo unione. T[K] recupera il tipo associato a una chiave. Insieme, consentono l'accesso alle proprietà con sicurezza dei tipi, i tipi mappati e le utility per i tipi condizionali.
Gratis per iniziare

Impara TypeScript con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
101
Lezioni
352

Domande Frequenti

La lezione «keyof e tipi di accesso indicizzato» è gratuita?

Sì — il testo completo di «keyof e tipi di accesso indicizzato» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 4 lezioni in totale.

Cosa imparerò in «keyof e tipi di accesso indicizzato»?

Acceda dinamicamente ai tipi delle proprietà degli oggetti con keyof e T[K]. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare TypeScript Academy?

Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «keyof e tipi di accesso indicizzato»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?

Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. keyof e tipi di accesso indicizzato
  2. Vincoli dei generics: restringere i parametri di tipo
  3. Tipi condizionali: T extends U ? X : Y
  4. Tipi condizionali distributivi
← Torna a TypeScript Academy