CONTATTACI

Guide per aspiranti programmatori

web developer che fa ok con la mano mentre lavora al pc constatando che la sicurezza del sito è ok
Lezione 18 / 30

Oggetti in Typescript

Nel linguaggio JavaScript, praticamente ogni cosa è un oggetto ad eccezione dei tipi primitivi. Un oggetto è, fondamentalmente, una collezione di coppie chiave/valore (in inglese: key/value pair); in informatica, una simile struttura di dati è spesso chiamata mappa, dizionario o record

Non confondiamo il fatto che un oggetto risponda alla definizione di mappa con la classe JavaScript Map che implementa, per l’appunto, una mappa, ed è nato appositamente per gestire casi d’uso dove un oggetto potrebbe anche andare bene, ma risulterebbe limitante o non ottimizzato per lo scopo. In questa guida non parliamo di Map

Il caso d’uso più frequente per gli oggetti in JavaScript sta nell’aggregare informazioni in delle proprietà; il modo più facile per rappresentare le proprietà di un oggetto è attraverso un object literal type

const user: { name: string, email: string } = { 
 name: "John Doe", 
 email: "john.doe@example.com" 
};

In questo caso abbiamo rappresentato il tipo di user con una notazione analoga a quella con cui gli abbiamo assegnato le sue proprietà. Poiché il tipo di user non ha un nome, si dice che è anonimo

Se volessimo dare un nome al tipo di user, ad esempio User (senza troppa fantasia), possiamo farlo in due modi: o assegnando un type alias alla notazione letterale anonima, oppure dichiarando un’interfaccia:

// alias di tipo 
type User = { 
 name: string, 
 email: string, 
}; 
// interfaccia 
interface User { 
 name: string; 
 email: string; 
}

Sia nella notazione anonima sia in un’interfaccia, la virgola e il punto e virgola per separare le proprietà sono intercambiabili e anzi, addirittura facoltativi, se le proprietà sono poste su righe separate. 

Poiché esiste un’ampia sovrapposizione tra type e interface, è il caso di chiedersi quali sono i casi d’uso più appropriati per l’una e per l’altra dichiarazione. 

In generale, interface è il modo ufficialmente raccomandato per dichiarare la struttura di un oggetto; è altresì vero che con le interfacce possiamo rappresentare anche array, funzioni e costruttori, che a rigore per il linguaggio JavaScript non sono altro che oggetti con particolari caratteristiche. Anche se non siamo abituati a concepire tutti questi tipi di dato come oggetti, usando un’interfaccia per rappresentarli, stiamo ufficializzando quella data struttura come un tipo vero e proprio con un suo nome e una collocazione ben precisa nel type system

Con type, invece, possiamo mettere qualsiasi tipo o combinazione di tipi dietro a un alias, più o meno allo stesso modo in cui a runtime possiamo mettere in una costante qualsiasi valore risultante da un’espressione; possiamo assegnare un alias ad un tipo primitivo tanto quanto ad un oggetto, a un array o a una qualunque combinazione di tipi, e TypeScript non farà altro che rimpiazzare quell’alias con la sua definizione. Il team di TypeScript raccomanda di usare type quando si vuole dare un nome a una combinazione complessa di tipi non rappresentabile con un’interfaccia. 

Esistono altre differenze tra alias e interfacce che vedremo man mano che esploriamo il type system. In fondo alla guida vedremo anche come i due approcci alla definizione dei tipi siano in realtà più o meno preferibili in base allo stile di programmazione adottato.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.