Pattern riutilizzabili per i modelli di dati
Applichi pattern generici a modelli reali: Paginated , Result , DTO con Pick/Omit/Partial e mappe indicizzate per id.
Pattern riutilizzabili per i modelli di dati è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 3 di 3. 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 3 lezioni in totale.
Introduzione
Obiettivo: raggruppare strutture di dati comuni come tipi generici per riutilizzare la struttura senza perdere la sicurezza dei tipi.
- Paginated<T>
- Result<T,E>
- DTO con Pick/Omit/Partial
- Mappe indicizzate per id
Paginated<T>
Paginated<T> centralizza i metadati e mantiene preciso il tipo T degli elementi nelle liste.
type Paginated<T> = {
items: T[];
total: number;
page: number;
pageSize: number;
};
type User = { id: number; name: string };
const page1: Paginated<User> = {
items: [{ id: 1, name: "Ada" }],
total: 10,
page: 1,
pageSize: 5,
};
console.log(page1.items[0].name);Result<T,E>
Result<T,E> rappresenta esplicitamente il successo o il fallimento con un discriminante (ok) per diramare il codice in sicurezza.
type Ok<T> = { ok: true; data: T };
type Err<E = string> = { ok: false; error: E };
type Result<T, E = string> = Ok<T> | Err<E>;
function readUser(id: number): Result<{ id: number; name: string }> {
return id > 0 ? { ok: true, data: { id, name: "Ada" } } : { ok: false, error: "not found" };
}
const r = readUser(1);
if (r.ok) {
console.log(r.data.name);
} else {
console.error(r.error);
}Pattern DTO
Con Pick/Omit/Partial può ricavare tipi DTO concisi dal modello principale, senza duplicazioni.
type User = { id: number; name: string; email?: string; role: "user" | "admin" };
type UserCreateDto = Pick<User, "name" | "email">; // fields required to create
// Update = partial editable fields
type UserUpdateDto = Partial<Pick<User, "name" | "email">>;
const createBody: UserCreateDto = { name: "Ada", email: "a@x.io" };
const updateBody: UserUpdateDto = { name: "Ada L." };MapById<T>
MapById<T> indicizza le entità per id per consentire ricerche rapide. Limiti T per garantire che esista un id.
type Key = string | number;
type MapById<T extends { id: Key }> = Record<Key, T>;
const byId: MapById<{ id: number; name: string }> = {
1: { id: 1, name: "Ada" },
2: { id: 2, name: "Lin" },
};
console.log(byId[1].name);Suggerimenti
Suggerimenti:
- Mantenga i pattern ridotti e componibili.
- Preferisca le unioni discriminate per le macchine a stati.
- Ricavi i DTO dai modelli ed eviti le copie manuali.
Verifica di Paginated<T>
Verifica rapida: perché definire un tipo generico Paginated<T>?
Riepilogo
Riepilogo: generalizzi le strutture ricorrenti: Paginated<T>, Result<T,E>, DTO con Pick/Omit/Partial e mappe indicizzate per id. Gli helper ridotti possono essere riutilizzati in molte funzionalità.
Domande Frequenti
La lezione «Pattern riutilizzabili per i modelli di dati» è gratuita?
Sì — il testo completo di «Pattern riutilizzabili per i modelli di dati» è 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 3 lezioni in totale.
Cosa imparerò in «Pattern riutilizzabili per i modelli di dati»?
Applichi pattern generici a modelli reali: Paginated , Result , DTO con Pick/Omit/Partial e mappe indicizzate per id. 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 3 di 3.
Quanto tempo richiede la lezione «Pattern riutilizzabili per i modelli di dati»?
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
- Interfacce generiche e alias di tipo
- Tipi condizionali (introduzione) e distribuzione sulle unioni
- Pattern riutilizzabili per i modelli di dati