Approfitta dei tipi di utilità di TypeScript e puoi beneficiare di un codice più espressivo che è anche più robusto.

TypeScript è un superset di JavaScript che ti consente di aggiungere tipizzazione statica alla tua base di codice. Con il suo potente sistema di tipi, TypeScript offre una migliore leggibilità del codice e la capacità di rilevare gli errori durante la compilazione.

Uno degli aspetti più vantaggiosi di TypeScript sono i suoi tipi di utilità incorporati, che possono semplificare i tuoi sforzi di codifica e risparmiare tempo prezioso per lo sviluppo. Dai un'occhiata a questi tipi di utilità TypeScript indispensabili che possono aiutarti a scrivere facilmente codice indipendente dai tipi.

Dattiloscritto Il tipo di utilità parziale consente di rendere facoltativa qualsiasi proprietà di un oggetto. Ti consente di creare oggetti con determinate proprietà che potrebbero essere mancanti o non definite. Prendi ad esempio:

interfaccia Utente { 
nome: corda;
età: numero;
e-mail: corda;
}
instagram viewer

Usando il Tipo di utilità parziale, è possibile creare un nuovo tipo con tutte le proprietà dell'interfaccia utente impostate come facoltative:

tipo OptionalUser = Parziale

Ora puoi creare un'istanza del tipo OptionalUser con solo alcune proprietà definite:

cost utente: OptionalUser = { nome: "John" };

Potrebbero verificarsi situazioni in cui è necessario creare un oggetto con determinate proprietà facoltative. Questo può tornare utile soprattutto quando si costruiscono moduli che hanno più campi, in quanto non tutti potrebbero essere richiesti e in tali casi l'utilità parziale potrebbe essere vitale.

Il tipo di utilità Pick di TypeScript può aiutarti a generare un nuovo tipo selezionando solo un sottoinsieme di proprietà da un tipo esistente. È utile quando è necessario restringere un oggetto più grande solo a poche proprietà richieste o se si desidera applicare una tipizzazione rigorosa alle proprietà necessarie.

interfaccia Utente { 
posizione: corda;
età: numero;
e-mail: corda;
}

tipo PersonWithoutEmail = Scegli'posizione' | 'età'>;

cost persona: PersonWithoutEmail = {
posizione: 'STATI UNITI D'AMERICA',
età: 30
};

In questo esempio, un'interfaccia denominata "Utente" definisce tre proprietà: email, età e posizione.

Utilizzando il Scegli il tipo di utilità, puoi estrarre le proprietà "location" e "age" in modo selettivo dall'interfaccia utente, creando un nuovo tipo denominato "PersonWithoutEmail".

È quindi possibile creare una nuova istanza del tipo "PersonWithoutEmail" e assegnare valori solo alle proprietà "location" e "age". Poiché la proprietà "email" è stata omessa da questo tipo, non è possibile assegnarla all'oggetto.

Con il tipo di utilità Pick, puoi creare un nuovo tipo che incorpori solo le proprietà che desideri. Questo può aiutare a rendere il tuo codice più leggibile e più facile da usare.

Il tipo readonly indica che gli attributi di un oggetto sono immutabili dopo la sua creazione. Questo tipo garantisce la coerenza dei dati dell'oggetto a lungo termine, con conseguente gestione del codice più fluida e sicura.

interfaccia Utente {
nome di sola lettura: corda;
età di sola lettura: numero;
email di sola lettura: corda;
}

Usando il Tipo di utilità di sola lettura, puoi creare un nuovo tipo con tutte le proprietà dell'interfaccia utente designate come di sola lettura:

tipo ReadonlyUser = Sola lettura

È possibile specificare i valori delle proprietà durante la creazione di un'istanza ReadonlyUser::

cost utente: utente di sola lettura = { 
nome: "John",
età: 30,
e-mail: "[email protected]"
};

Quando si contrassegnano le proprietà di un oggetto come di sola lettura, il tentativo di modificare i valori di tali proprietà diventa impossibile:

utente.nome = "Jane";
// Errore: impossibile assegnare a 'nome' perché è una proprietà di sola lettura.

Il tipo Readonly è particolarmente importante nelle situazioni in cui si vuole assicurarsi che un particolare oggetto non cambi, comunque sia referenziato. Ad esempio, se disponi di un oggetto che contiene importanti impostazioni di configurazione, vorrai assicurarti che rimanga inalterato.

Questo tipo assicura che tutte le proprietà essenziali di un oggetto siano presenti, mentre il tipo Partial offre maggiore flessibilità consentendo di specificare un sottoinsieme di proprietà lasciando le altre opzionale. Ciò può rivelarsi vantaggioso in situazioni in cui alcune proprietà potrebbero non essere necessarie o sono soggette a modifiche.

interfaccia Utente {
nome: corda;
posizione: numero;
indirizzo: corda;
}

Utilizzando il Tipo di utilità richiesto, è possibile creare un nuovo tipo che combini tutti gli attributi dell'interfaccia utente richiedendo che ognuna di queste proprietà sia presente. La creazione di un'istanza RequiredUser è possibile solo dopo che tutte le sue proprietà sono state correttamente impostate.

cost utente: RequiredUser = { 
nome: "Giovanni Rossi",
posizione: "STATI UNITI D'AMERICA",
indirizzo: "Kansas 9745-0622"
};

L'utilizzo del tipo di utilità Richiesto assicura che tutte le proprietà richieste siano presenti all'interno di un oggetto.

Il tipo di utilità Ometti consente di creare un nuovo tipo escludendo proprietà particolari da un tipo esistente.

interfaccia Persona {
posizione: corda;
età: numero;
e-mail: corda;
}

tipo PersonWithoutEmail = Ometti'e-mail'>;
cost persona: PersonWithoutEmail = { posizione: "STATI UNITI D'AMERICA"; età: 30 };

L'interfaccia Persona ha tre proprietà: età, posizione ed e-mail. Il tipo PersonWithoutEmail utilizza un tipo di utilità Omit per includere tutte le proprietà di un oggetto Person, ad eccezione della posta elettronica. È quindi possibile creare un'istanza di questo nuovo tipo, senza specificare un valore per una proprietà email.

È necessario tenere presente che il tipo di utilità Omit condivide significative somiglianze con il tipo di utilità Pick, in quanto consente di ideare un nuovo tipo utilizzando solo le proprietà specificate.

È possibile utilizzare il tipo di utilità Record per definire un tipo di oggetto per il quale chiavi e valori hanno un tipo particolare. La sua definizione è:

tipo Documentazioneestende keyof Qualunque, T> = { [P In K]: T;};

Questo associa il tipo T al valore di ciascuna chiave, mentre K è un'unione di chiavi di qualsiasi tipo. L'oggetto risultante ha il tipo di proprietà P impostato su T.

Si consideri lo scenario di un tipo di oggetto con chiavi stringa e valori numerici. In tal caso, puoi applicare il Tipo di utilità di registrazione COME:

tipo MyRecord = Registra<corda, numero>;

cost mioOggetto: MioRecord = {
"pippo": 1,
"sbarra": 2,
"bazz": 3,
}

Questo esempio specifica MyRecord come tipo di oggetto con chiavi stringa e valori numerici. L'oggetto myObject incarna un'esemplificazione di questo tipo, con i tasti "foo", "bar" e "baz" assegnati ai loro valori corrispondenti.

Questo articolo ha scoperto la pura potenza dei tipi di utilità TypeScript: possono essere una risorsa preziosa quando si tratta di semplificare il codice e rendere lo sviluppo più veloce ed efficiente. Questi tipi di utilità e TypeScript in generale possono fare miracoli per garantire che il tuo codice sia sempre privo di errori e aderisca a strutture specifiche.