Typescript e la programmazione funzionale

Illustrazione di un developer che ha a che fare con database e archivi

Abbiamo visto le tecniche proposte dalla programmazione orientata agli oggetti per organizzare dinamicamente dati e funzioni e discriminare tra diverse casistiche; vediamo, ora, come le stesse problematiche vengono affrontate in programmazione funzionale.  Ripartiamo, dunque, dal nostro solito contatore e vediamo come questo verrebbe gestito in FP. Poiché qui le funzioni sono intese in senso matematico, […]

Typescript e la programmazione orientata agli oggetti

tre developer, uno lavora al pc, l'altra ha una lampadina in mano, l'ultimo ha in mano una cartella

La programmazione orientata agli oggetti (in inglese object-oriented programming, abbreviato OOP), nella sua accezione più classica, punta ad utilizzare le tecniche e i paradigmi della programmazione procedurale in contesti isolati divisi per aree di competenza e comunicanti attraverso l’invocazione di metodi.  Le classi nella programmazione ad oggetti L’OOP implementa questo tipo di organizzazione utilizzando il […]

Moduli e namespace in Typescript

sviluppatrice che programma seduta su una lampadina aiutata da un robottino

Il primo livello di organizzazione architetturale del nostro codice è abbastanza integrato nelle moderne versioni di JavaScript; si tratta dei moduli. I moduli (o concetti ad essi analoghi) costituiscono la base di organizzazione del codice in praticamente tutti i linguaggi di programmazione.  Lo scopo di un sistema di moduli è molteplice:  dividere il codice in […]

Typescript e la programmazione procedurale/Scripting

developer a lavoro alla scrivania utilizzando più schermi

Lungo tutta la guida la conoscenza di TypeScript e del suo sistema di tipi sono state il fulcro della nostra trattazione. Ma, in fin dei conti, un linguaggio di programmazione è tanto efficace quanto è espressivo e ci permette di organizzare il codice in un modo che rappresenti e descriva la realtà del dominio in […]

Tipi utility in Typescript

donna che esce da uno schermo sul quale si vedono ingranaggi, con un fumetto con una chiave inglese all'interno

Se volessimo ricapitolare quello che abbiamo imparato sul type system, potremmo sintetizzarlo così: TypeScript parte dai primitivi, i tipi nativamente presenti nel linguaggio JavaScript, e aggiunge un insieme di definizioni per vincolare la struttura di oggetti e array. Tali definizioni seguono una gerarchia nominale di tipi veri e propri costituiti dalle nostre interfacce, più una […]

Manipolazione di tipi in Typescript

sviluppatrice che levita a gambe incrociate con una moltitudine di oggetti che la circondano

A questo punto, abbiamo tutti gli strumenti per usare il type system come un vero e proprio linguaggio di programmazione a compile time. In questa sezione vedremo come creare tipi a partire da altri tipi, sfruttando vincoli e condizioni per creare complesse strutture a partire da pochi tipi di riferimento o persino da dati JavaScript […]

Parametri di tipo in Typescript

developer seduto a gambe incrociate con pc in grembo che indica due parentesi angolari davanti a se

A volte può tornarci comodo parametrizzare i tipi allo stesso modo in cui facciamo con i dati. Prendiamo una funzione estremamente semplice, che accetta un dato e ritorna lo stesso dato immutato; come definiremmo la sua firma in TypeScript?   const identity = x => x; // identity: ?? In questo esempio, TypeScript si limita […]

Tipi algebrici in Typescript

sviluppatore che scrive al pc circondato da un vortice di foglietti

Nelle sezioni iniziali di questa guida abbiamo parlato del fatto che TypeScript offre un type system statico, e questo comporta che una variabile non possa cambiare tipo durante il suo ciclo di vita. Eppure, sappiamo che il nostro codice TypeScript è destinato a diventare JavaScript, che invece ha un type system dinamico. Come abbiamo visto […]

Any vs unknown in Typescript

developer cyborg che sorride al pc assieme ad un piccolo robot

Più indietro in questa guida, in un esempio abbiamo parlato della funzione JSON.parse e del suo tipo di ritorno any; riprendiamo l’esempio:    const data = JSON.parse(‘{ “name”: “John” }’); // const data: any console.log(data.name); Abbiamo già visto come dire a TypeScript di assumere che data sia di un certo tipo, e abbiamo anche visto […]

Guardie di tipo in Typescript

sviluppatore web che lavora alla scrivania con un fumetto con 3 puntini di sospensione

Un caso d’uso particolare delle funzioni è quello di usarle per fare type narrowing, cioè per verificare se un dato sia di un certo tipo. Abbiamo già parlato di restringimento di tipo in Typescript, facendo esempi come il seguente:   function concat(a: string | number, b: string | number): string { if (typeof a === […]

Funzioni in Typescript

sviluppatrice in miniatura che programma in typescript con schermo in grande

Veniamo, ora, ad un altro tassello fondamentale di ogni linguaggio di programmazione: le funzioni. In TypeScript esistono diversi modi per tipizzare una funzione, ricalcando i diversi modi con cui una funzione può essere implementata in JavaScript.  Iniziamo con la definizione più comune, quella introdotta dalla parola chiave function   function: function sum(a: number, b: number): […]

Array e tuple in Typescript

sviluppatrice web che disegna intorno a degli ingranaggi

Array in Typescript Nel linguaggio JavaScript, un elenco ordinato di dati è rappresentato da un array; in TypeScript, gli array sono elenchi ordinati di dati dello stesso tipo.  Ecco qualche esempio di array in TypeScript:   // array di stringhe const greetings: string[] = [“hello”, “hi”]; // array di numeri const oneToFive: number[] = [1, […]

Oggetti in Typescript

web developer che fa ok con la mano mentre lavora al pc

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 […]

Tipi enumerativi in Typescript

sviluppatore web che lavora alla scrivania con un fumetto con 3 puntini di sospensione

A volte ci troviamo in presenza di tipi di dato il cui unico scopo è quello di discriminare tra un elenco finito di opzioni.  Prendiamo ad esempio la seguente funzione, che presenta uno switch statement:   function log(level: string, message: string): void { switch (level) { case “log”: console.log(message); return; case “info”: console.info(message); return; case […]

Null e undefined in Typescript

developer seduto alla scrivania che lavora al codice

Un’altra combinazione frequentissima avviene tra i tipi null e undefined e altri tipi, a indicare che un dato potrebbe essere valorizzato oppure mancante. Prendiamo l’API standard del localStorage, disponibile in tutti i browser:    localStorage.getItem(“key”); // getItem(): string | null In questo caso, getItem restituisce un valore stringa oppure niente, e niente è rappresentato dal […]

Tipi letterali in Typescript

sviluppatore web che lavora alla scrivania con un fumetto con 3 puntini di sospensione

In aggiunta ai tipi primitivi, TypeScript offre un modo molto vantaggioso per vincolare la definizione di un tipo a uno o più specifici valori letterali che una data variabile può assumere, o che una data funzione può restituire.  Prendiamo il seguente esempio:    let a = 1; // a: number const b = 1; // […]

Tipi primitivi in Typescript

Web developer freelance che fa ok con la mano mentre lavora al pc

Essendo TypeScript un linguaggio che include JavaScript, come base di partenza il suo sistema di tipi ricalca i tipi primitivi esistenti a runtime; dunque ritroviamo i già noti string, number, boolean. A questi si aggiungono i tipi object e array, che però individuano intere categorie di sottotipi e per questo li vedremo più avanti nel […]

Integrazione di Typescript con IDE

developer cyborg che sorride al pc assieme ad un piccolo robot

Finora abbiamo imparato che, grazie alle dichiarazioni e alle annotazioni di tipo, TypeScript fornisce un potente sistema di prevenzione contro errori in esecuzione (a runtime).  Un altro motivo per cui questo linguaggio ha visto un enorme successo tra gli sviluppatori sta nel fatto che TypeScript costituisce anche un potente alleato nella consultazione e scrittura del […]

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.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

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

Esempio di finanziamento  

Importo finanziato: € 2440 in 24 rate da € 112 – TAN fisso 9,37% TAEG 12,57% – importo totale del credito € 2788,68.

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/07/2023 al 31/12/2023.

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 183 €/mese.

Esempio di finanziamento 

Importo finanziato: € 3990 in 24 rate da € 183 – TAN fisso 9,37% TAEG 12,57% – importo totale del credito € 4496,56.

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/07/2023 al 31/12/2023.

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.