0Pricing
TypeScript Academy · Lezione

Tipi unione: A o B

Utilizzi | per consentire più possibilità di tipo.

Tipi unione: A o B è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 4 lezioni in totale.

Benvenuto

I tipi unione consentono a un valore di essere uno tra diversi tipi. Si scrivono con l'operatore `|` e sono fondamentali per modellare i dati del mondo reale.

Sintassi di base delle unioni

Combini due o più tipi con `|`. Una variabile con un tipo unione può contenere uno qualsiasi dei tipi elencati.
let id: string | number;
id = 'abc123'; // OK
id = 42;       // OK
// id = true;  // Error

Unioni nei parametri delle funzioni

Accetti più tipi di input in una funzione utilizzando un tipo unione come parametro.
function format(val: string | number): string {
  return typeof val === 'string' ? val.toUpperCase() : val.toFixed(2);
}

È necessario restringere i membri di un'unione

Senza restringere il tipo, può chiamare solo i metodi comuni a tutti i membri dell'unione. Per i metodi specifici di un tipo, deve prima restringere il tipo.
function process(val: string | number) {
  // val.toFixed(2); // Error — not on string
  if (typeof val === 'number') {
    val.toFixed(2); // OK
  }
}

Unioni con tipi letterali

I tipi unione composti da valori letterali creano un insieme di valori stringa o numerici consentiti, simile a un enum.
type Direction = 'north' | 'south' | 'east' | 'west';
type StatusCode = 200 | 201 | 400 | 404 | 500;

Unioni per i tipi nullable

L'unione più comune è `T | null` o `T | undefined`, per rappresentare valori facoltativi quando strictNullChecks è attivo.
function getUser(id: number): User | null {
  return db.find(u => u.id === id) ?? null;
}

Unioni di tipi oggetto

I tipi unione possono combinare tipi oggetto. TypeScript consente di accedere, senza restringere il tipo, solo alle proprietà comuni a tutti i membri.
type Cat = { kind: 'cat'; meow(): void };
type Dog = { kind: 'dog'; bark(): void };
type Pet = Cat | Dog;
function speak(pet: Pet) {
  if (pet.kind === 'cat') pet.meow();
  else pet.bark();
}

Tre o più tipi in un'unione

I tipi unione possono includere tutti i tipi necessari.
type Input = string | number | boolean | null;

Unioni nei tipi restituiti

Le funzioni possono restituire tipi diversi in base alla propria logica. Esprima questo comportamento con un tipo unione come tipo restituito.
function divide(a: number, b: number): number | null {
  if (b === 0) return null;
  return a / b;
}

Unioni discriminate

Aggiunga una proprietà letterale condivisa (un discriminante) ai membri dell'unione. TypeScript la utilizza per restringere automaticamente il tipo.
type Square = { kind: 'square'; side: number };
type Circle = { kind: 'circle'; radius: number };
type Shape = Square | Circle;

Proprietà comuni senza restringere il tipo

Se tutti i membri dell'unione condividono una proprietà, può accedervi senza restringere il tipo.
type A = { name: string; x: number };
type B = { name: string; y: number };
type AB = A | B;
function getName(obj: AB): string {
  return obj.name; // OK — name is on both
}

Verifica rapida

Quale sintassi crea un tipo unione che può essere una stringa o un numero?

Riepilogo

I tipi unione (`|`) consentono valori di più tipi. Restringa le unioni prima di usare operazioni specifiche del tipo. I tipi unione di valori letterali limitano i valori a un insieme finito. Le unioni discriminate aggiungono un tag condiviso per semplificare il restringimento del tipo.

Domande Frequenti

La lezione «Tipi unione: A o B» è gratuita?

Sì — il testo completo di «Tipi unione: A o B» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 4 lezioni in totale.

Cosa imparerò in «Tipi unione: A o B»?

Utilizzi | per consentire più possibilità di tipo. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare TypeScript Academy?

Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Tipi unione: A o B»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?

Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Tipi unione: A o B
  2. Tipi intersezione: A e B
  3. Unioni discriminate per un pattern matching sicuro
  4. Pattern pratici con unioni e intersezioni
← Torna a TypeScript Academy