Skip to content
Berktug Berke Ates
Berktug Berke Ates

Software Engineer

Blog

Confini tipizzati nei sistemi TypeScript moderni

· 7 min di lettura

TypeScript ripaga quando i tipi proteggono le cuciture tra moduli, API e dati a runtime.

I tipi sono più forti ai bordi

Le annotazioni interne delle funzioni aiutano, ma i bug costosi di solito attraversano processi, reti, storage o confini di team. Investi lo sforzo di tipizzazione dove dati non fidati o deployati in modo indipendente entrano nel sistema: payload HTTP, messaggi di coda, configurazione di ambiente e webhook di terze parti.

A quei bordi, i tipi a compile-time non bastano. Abbinarli a schema a runtime fa sì che i dati invalidi falliscano in modo controllato prima di corrompere la logica di dominio.

Condividi contratti, non implementazioni

Genera o pubblica tipi condivisi per client e server da un’unica fonte di verità. Tieni dettagli di trasporto e concern di UI fuori dal modello di dominio. Un cambio di nullability di un campo deve essere deliberato e visibile a ogni consumer.

I branded type per gli identificatori impediscono di mescolare accidentalmente user ID, organization ID e riferimenti esterni. Distinzioni nominali piccole catturano un’intera classe di errori di integrazione.

  • Valida in lettura ai confini di fiducia
  • Rendi irrapresentabili gli stati illegali dove è economico
  • Preferisci result type espliciti all’ambiguità dei throw
  • Tieni i DTO separati dai modelli di persistenza

Evita il teatro dei tipi

Sovradattare i tipi a ogni stato temporaneo di UI crea churn senza sicurezza. Escape hatch come any, cast ampi e conditional type troppo furbi dovrebbero essere rari e giustificati. Tipi leggibili che i colleghi possono cambiare valgono più di quelli ingegnosi che nessuno capisce.

Misura il successo con meno errori di parsing in produzione e refactor più sicuri, non con la densità dei generic.

Lascia che i tipi documentino le decisioni

Un buon type system cattura le regole di prodotto: quali campi esistono dopo l’onboarding, quali status consentono rimborsi, quali payload sono versionati. Quella documentazione resta onesta perché il compilatore la impone.

TypeScript è più efficace quando codifica l’architettura in cui già credi e poi impedisce al team di abbandonarla per sbaglio.


Pubblicato il 30 settembre 2025 da Berktug Berke Ates.