TypeScript Omit: Guida con esempi pratici
TypeScript Omit è uno degli strumenti più potenti messi a disposizione da TypeScript per creare tipi personalizzati, migliorando leggibilità e manutenibilità del codice. In questo articolo scoprirai cos’è esattamente TypeScript Omit, come si usa nella pratica e quando può semplificarti davvero il lavoro con esempi chiari e semplici.
Cos’è TypeScript Omit?
Omit<Type, Keys>
è una utility type che permette di creare un nuovo tipo partendo da un tipo esistente, escludendo però alcune delle sue proprietà.
Sintassi base:
type NuovoTipo = Omit<TipoOriginale, 'ProprietàDaEscludere'>;
Esempio pratico base
Considera questo esempio di un’interfaccia Prodotto
:
interface Prodotto {
id: number;
nome: string;
prezzo: number;
categoria: string;
}
Se vuoi creare un nuovo tipo senza il campo categoria
, pui fare così:
type ProdottoSemplificato = Omit<Prodotto, 'categoria'>;
const prodotto: ProdottoSemplificato = {
id: 1,
nome: 'Smartphone',
prezzo: 299
};
console.log(prodotto);
// Output: { id: 1, nome: 'Smartphone', prezzo: 299 }
In questo modo, categoria
non è più inclusa nel tipo.
Escludere più proprietà contemporaneamente
Spesso potresti dover rimuovere più campi da un tipo. Ecco come farlo facilmente con Omit
:
interface Utente {
id: number;
username: string;
email: string;
password: string;
}
type UtentePubblico = Omit<Utente, 'email' | 'password'>;
const utentePubblico: UtentePubblico = {
id: 5,
username: 'Marco1988'
};
console.log(utentePubblico);
// Output: { id: 5, username: 'Marco1988' }
Qui, escludendo email
e password
, hai creato un tipo che protegge automaticamente i dati sensibili.
Caso d’uso avanzato con Omit e funzioni
Immagina di avere una funzione che restituisce le informazioni di un dipendente, escludendo alcune proprietà private:
interface Dipendente {
id: number;
nome: string;
cognome: string;
stipendio: number;
iban: string;
}
type DipendentePubblico = Omit<Dipendente, 'stipendio' | 'iban'>;
function mostraDipendente(dipendente: Dipendente): DipendentePubblico {
const { stipendio, iban, ...datiPubblici } = dipendente;
return datiPubblici;
}
const dipendente: Dipendente = {
id: 10,
nome: 'Luca',
cognome: 'Rossi',
stipendio: 2500,
iban: 'IT60X0542811101000000123456'
};
console.log(mostraDipendente(dipendente));
// Output: { id: 10, nome: 'Luca', cognome: 'Rossi' }
Con questo approccio eviti automaticamente di esporre dati riservati o sensibili.
Combinare TypeScript Omit con altri Utility Types
Omit
può essere combinato con altre utility per ottenere maggiore flessibilità. Ad esempio, per creare un tipo con campi opzionali tranne uno obbligatorio:
interface Evento {
titolo: string;
descrizione: string;
data: Date;
luogo: string;
}
type EventoFlessibile = Partial<Omit<Evento, 'titolo'>> & { titolo: string };
const evento: EventoFlessibile = {
titolo: 'Concerto Jazz'
// gli altri campi sono opzionali
};
console.log(evento);
// Output: { titolo: 'Concerto Jazz' }
Qui hai definito che solo il titolo
è obbligatorio, mentre le altre proprietà restano opzionali.
Conclusione
TypeScript Omit è uno strumento indispensabile per scrivere codice pulito, sicuro e leggibile, permettendoti di gestire facilmente la visibilità e la sicurezza dei dati.
Per ulteriori dettagli, puoi consultare la documentazione ufficiale di TypeScript.