Asserzioni di tipo
Fa parte della sezione Introduzione a TypeScript del percorso JavaScript di Coddy. Lezione 68 di 73.
A volte TypeScript non dispone di informazioni sufficienti per determinare il tipo esatto di un valore, ma tu, in quanto sviluppatore, sai qualcosa in più su quale sia effettivamente quel valore. Le asserzioni di tipo ti permettono di dire a TypeScript: «fidati, so che questo valore è di questo tipo specifico».
TypeScript fornisce due sintassi per le asserzioni di tipo. La sintassi as è l’approccio più comune:
let data: unknown = '{"name": "John", "age": 30}';
let user = data as string;Puoi anche usare la sintassi con parentesi angolari, anche se è meno comune nel TypeScript moderno:
let data: unknown = '{"name": "John", "age": 30}';
let user = <string>data;Sfida
FacileCrea una funzione che elabori i dati provenienti da una simulazione di un'API esterna. Lavorerai con valori di tipo unknown e userai asserzioni di tipo per accedere in sicurezza alle loro proprietà.
Crea una variabile apiResponse di tipo unknown e assegnale la seguente stringa JSON:
{"userId": 42, "username": "alice_dev", "isActive": true}Crea una funzione chiamata processUserData che:
- Accetti un parametro
datadi tipounknown - Usi un'asserzione di tipo per trattare
datacome unastring - Analizzi la stringa JSON usando
JSON.parse() - Usi un'altra asserzione di tipo per trattare il risultato analizzato come un oggetto con le proprietà
userId(number),username(string) eisActive(boolean) - Restituisca una stringa formattata:
"User [userId]: [username] (Active: [isActive])" - Abbiano un tipo di ritorno esplicito
string
Crea altri dati di test:
- Crea
secondApiResponsedi tipounknowncon la stringa JSON:{"userId": 15, "username": "bob_admin", "isActive": false} - Crea
thirdApiResponsedi tipounknowncon la stringa JSON:{"userId": 99, "username": "charlie_user", "isActive": true}
Verifica la tua funzione e stampa i seguenti risultati:
- Chiama
processUserDataconapiResponsee stampa il risultato - Chiama
processUserDataconsecondApiResponsee stampa il risultato - Chiama
processUserDataconthirdApiResponsee stampa il risultato
Provalo tu
// Crea le variabili per le risposte dell'API
const apiResponse: unknown = '{"userId": 42, "username": "alice_dev", "isActive": true}';
const secondApiResponse: unknown = '{"userId": 15, "username": "bob_admin", "isActive": false}';
const thirdApiResponse: unknown = '{"userId": 99, "username": "charlie_user", "isActive": true}';
// TODO: Crea qui la funzione processUserData
// Testa la funzione e stampa i risultati
console.log(processUserData(apiResponse));
console.log(processUserData(secondApiResponse));
console.log(processUserData(thirdApiResponse));Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Introduzione a TypeScript
1Primi passi con TS
Che cos'è TypeScript?Perché usare TypeScript?Il tuo primo codice TypeScriptProcesso di compilazione ed erroriRiepilogo: introduzione a TS4Lavorare con le funzioni
Tipizzare parametri e valori restituitiTipizzare le funzioni frecciaIl tipo restituito 'void'Parametri opzionali con '?'Valori predefiniti dei parametriTipizzare i parametri restDefinire i tipi di funzioneRiepilogo: creare funzioni tipizzate2Tipi fondamentali
Tipi di base: str, num, booleanIl tipo 'any': via di fugaIl tipo 'unknown'Lavorare con 'null' e 'undef'L'inferenza dei tipi in azioneAnnotazioni esplicite dei tipiRiepilogo: esercitazioni sui tipi fondamentali5Tipi: alias, unioni e intersezioni
Alias di tipo per i primitiviTipi unione ('|')Lavorare con i tipi unioneTipi letteraliTipi intersezione ('&')Combinare alias di tipoRiepilogo: combinazioni avanzate di tipi8Enum
Che cos’è un enum numerico?Usare gli enum numericiChe cos’è un enum di stringhe?Usare gli enum di stringheEnum eterogeneiRipasso: usare gli enum11Argomenti avanzati
Asserzioni di tipoGuardie di tipo: in e instanceofIl tipo 'never'Tipi nullable ('strictNull')Firme di indice per gli oggettiRiepilogo: perfezionare i tipi3Strutture dati: Array e Tuple
Array tipizzatiModificatore 'readonly' per gli arrayChe cos'è una Tuple?Dichiarare e accedere alle TupleDestrutturare le TupleTuple di sola letturaArray tipizzati multidimensionaliOperatore spread con gli arrayRiepilogo: Array e Tuple6Tipizzazione di oggetti e interfacce
Annotazioni inline dei tipi degli oggettiAlias di tipo per gli oggettiIntroduzione alle interfacceInterfacce e alias di tipo a confrontoProprietà facoltative e di sola letturaEstendere interfacce e tipiAggiungere metodi alle interfacceRiepilogo: definire le forme degli oggettiEsercitati da solo: Playground TypeScript