
GUIDE PER ASPIRANTI PROGRAMMATORI
Sistema di tipi in Typescript
Ora che abbiamo visto come lavorare con TypeScript, iniziamo a farci un’idea su come sfruttarne le potenzialità. Come suggerisce il nome, la principale feature che TypeScript aggiunge al linguaggio JavaScript consta di un potente e versatile sistema di tipi (in inglese: type system) che ci permette di identificare tutti i tipi di dato (di seguito…


Vuoi avviare una nuova carriera o fare un upgrade?
Trova il corso Digital & Tech più adatto a te nel nostro catalogo!
- Tipi primitivi in Typescript
- Tipi letterali in Typescript
- Null e undefined in Typescript
- Tipi enumerativi in Typescript
- Oggetti in Typescript
- Array e tuple in Typescript
- Funzioni in Typescript
- Guardie di tipo in Typescript
- Any vs unknown in Typescript
- Tipi algebrici in Typescript
- Parametri di tipo in Typescript
- Manipolazione di tipi in Typescript
- Tipi utility in Typescript
Ora che abbiamo visto come lavorare con TypeScript, iniziamo a farci un’idea su come sfruttarne le potenzialità.
Come suggerisce il nome, la principale feature che TypeScript aggiunge al linguaggio JavaScript consta di un potente e versatile sistema di tipi (in inglese: type system) che ci permette di identificare tutti i tipi di dato (di seguito tipi) nativi di JavaScript e di definire un’incredibile varietà di tipi personalizzati.
Esistono molti linguaggi di programmazione tipizzati con diversi approcci alla gestione dei tipi di dato, perciò vediamo di collocare TypeScript nel panorama fornendo una classificazione super sintetica, ma densa di significato:
TypeScript presenta un type system statico, strutturale, multi-paradigma.
Type system statico
Per type system statico si intende che il tipo di una variabile è noto in compilazione; al contrario, in un linguaggio di programmazione dinamicamente tipizzato (come JavaScript) il tipo di una variabile è noto solo in esecuzione. Il vantaggio di un type system statico consiste nel poter verificare che a una variabile sia sempre assegnato un valore di un tipo compatibile con quello che ci si aspetta quando si andrà a leggere quella variabile.
Il bello è che questo tipo di verifica può essere sempre fatto prima che la nostra web app sia eseguita! Questa caratteristica si chiama compile time type checking, cioè verifica di tipo in fase di compilazione.
Type system strutturale
Per type system strutturale si intende che due tipi che esprimono strutture compatibili, sono considerati come lo stesso tipo anche se sono identificati da nomi diversi; al contrario, un type system nominale identifica i tipi esclusivamente in base al loro nome e determina la struttura di un tipo a partire dal nome anziché dalle sue proprietà.
L’adozione di un sistema di tipi strutturale è anche detta duck typing, secondo il principio per cui se un uccello cammina come un’anatra, nuota come un’anatra e starnazza come un’anatra, dev’essere un’anatra!
Type system multi-paradigma
Per type system multi-paradigma intendiamo semplicemente che TypeScript offre diversi approcci alla definizione di tipi; per esempio, permette di definire un nuovo tipo combinando o trasformando altri tipi, come spesso si fa in programmazione funzionale, oppure di definire gerarchie di tipi che vanno da quelli più astratti a quelli più concreti sfruttando il polimorfismo, come accade nella programmazione orientata agli oggetti.
Nell’ultima parte di questa guida affronteremo le principali tecniche di applicazione di questi paradigmi e come queste sfruttano il type system di TypeScript.
CONTENUTI GRATUITI IN EVIDENZA
Guide per aspiranti programmatori 👨🏻🚀
Vuoi muovere i primi passi nel Digital e Tech? Abbiamo preparato alcune guide per aiutarti a orientarti negli ambiti più richiesti oggi.