0Pricing
TypeScript Academy · Lezione

Tipi mappati: trasformazione dei tipi degli oggetti

Iteri sulle chiavi per creare nuove strutture di tipo.

Tipi mappati: trasformazione dei tipi degli oggetti è 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

I tipi mappati iterano sulle chiavi di un tipo per creare nuovi tipi con proprietà trasformate. Sono alla base di Partial, Readonly, Record e molte altre utility.

Sintassi di base dei tipi mappati

Usi `[K in keyof T]` per iterare su tutte le chiavi di T e produrre un nuovo tipo.
type Copy<T> = { [K in keyof T]: T[K] };
type UserCopy = Copy<User>; // same as User

Rendere opzionali tutte le proprietà

È così che viene implementato Partial: aggiungendo ? a ogni proprietà.
type Partial<T> = { [K in keyof T]?: T[K] };
type PartialUser = Partial<User>;

Rendere readonly tutte le proprietà

Aggiunga `readonly` a ogni proprietà nel tipo mappato.
type Readonly<T> = { readonly [K in keyof T]: T[K] };
type FrozenUser = Readonly<User>;

Trasformare i tipi dei valori

Modifichi il tipo del valore di ogni proprietà mantenendo invariate le chiavi.
type Stringify<T> = { [K in keyof T]: string };
type StringUser = Stringify<User>; // all values are string

Filtrare le proprietà con never

Usi una condizione nella posizione del valore e filtri con never tramite il remapping delle chiavi.
type OnlyStrings<T> = {
  [K in keyof T as T[K] extends string ? K : never]: T[K]
};

Record<K, V>

Record crea un tipo oggetto con chiavi e tipi di valore specifici.
type Record<K extends string | number | symbol, V> = { [P in K]: V };
const roles: Record<'admin' | 'user', boolean> = { admin: true, user: false };

I tipi mappati preservano l'opzionalità

Per impostazione predefinita, i tipi mappati preservano i modificatori optional e readonly del tipo di origine.
interface User { id: number; name?: string; }
type Copy<T> = { [K in keyof T]: T[K] };
type C = Copy<User>; // id: number; name?: string (preserved)

Remapping delle chiavi con as

Rimappi le chiavi con nuovi nomi usando `as` nel tipo mappato.
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};

Iterare su un'unione

Esegua il mapping su un tipo unione invece che su keyof T per creare tipi oggetto a partire dalle unioni.
type Flags = { [K in 'option1' | 'option2' | 'option3']: boolean };

Combinare tipi mappati e condizionali

I tipi mappati e i tipi condizionali si combinano naturalmente per produrre trasformazioni sofisticate.
type NullableValues<T> = { [K in keyof T]: T[K] | null };

Verifica rapida

Che cosa produce `{ [K in keyof T]?: T[K] }`?

Riepilogo

I tipi mappati iterano sulle chiavi per creare nuovi tipi. Possono aggiungere o rimuovere readonly e ?, trasformare i tipi dei valori, filtrare le chiavi con never e rimappare le chiavi con as. Sono alla base di tutte le utility per i tipi built-in di TypeScript.

Domande Frequenti

La lezione «Tipi mappati: trasformazione dei tipi degli oggetti» è gratuita?

Sì — il testo completo di «Tipi mappati: trasformazione dei tipi degli oggetti» è 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 «Tipi mappati: trasformazione dei tipi degli oggetti»?

Iteri sulle chiavi per creare nuove strutture di tipo. 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 «Tipi mappati: trasformazione dei tipi degli oggetti»?

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. Tipi mappati: trasformazione dei tipi degli oggetti
  2. Modificatori nei tipi mappati: readonly e ?
  3. Tipi template literal: pattern di stringhe
  4. Rimappatura delle chiavi con as nei tipi mappati
← Torna a TypeScript Academy