0Pricing
TypeScript Academy · Lezione

Restringimento avanzato dei tipi

Impari a usare guardie di tipo avanzate e l'analisi del flusso di controllo per gestire facilmente condizioni di tipo complesse

Restringimento avanzato dei tipi è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. 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 3 lezioni in totale.

Introduzione al restringimento avanzato dei tipi

Introduzione al restringimento avanzato dei tipi

Il restringimento avanzato dei tipi consente di precisare tipi complessi a runtime usando tecniche avanzate come i type guard, l'analisi del flusso di controllo e i predicati personalizzati.

Questi strumenti rendono il codice TypeScript più sicuro e prevedibile.

Restringimento avanzato dei tipi — illustrazione 1

Cos'è il restringimento dei tipi?

Cos'è il restringimento dei tipi?

Il restringimento dei tipi è il processo di trasformazione di un tipo più ampio (ad esempio, string | number) in un tipo più specifico usando controlli a runtime.

Usare <code>typeof</code> per restringere il tipo

Usare typeof per restringere il tipo

L'operatore typeof può essere usato per restringere i tipi primitivi:

function printValue(value: string | number): void {
  if (typeof value === 'string') {
    console.log(`String: ${value}`);
  } else {
    console.log(`Number: ${value}`);
  }
}

printValue('Hello'); // String: Hello
printValue(42); // Number: 42

Usare <code>instanceof</code> per restringere il tipo

Usare instanceof per restringere il tipo

L'operatore instanceof può essere usato per restringere le istanze delle classi:

class Dog {
  bark() {
    console.log('Woof!');
  }
}

class Cat {
  meow() {
    console.log('Meow!');
  }
}

function makeSound(animal: Dog | Cat): void {
  if (animal instanceof Dog) {
    animal.bark();
  } else {
    animal.meow();
  }
}

makeSound(new Dog()); // Woof!
makeSound(new Cat()); // Meow!

Usare type guard personalizzati

Usare type guard personalizzati

È possibile creare funzioni personalizzate di type guard per restringere i tipi in modo più preciso:

type Fish = { swim: () => void };
type Bird = { fly: () => void };

declare const animal: Fish | Bird;

function isFish(animal: Fish | Bird): animal is Fish {
  return (animal as Fish).swim !== undefined;
}

if (isFish(animal)) {
  animal.swim();
} else {
  animal.fly();

Analisi del flusso di controllo

Analisi del flusso di controllo

L'analisi del flusso di controllo di TypeScript restringe automaticamente i tipi in base al flusso logico del codice:

function getLength(value: string | string[]): number {
  if (Array.isArray(value)) {
    return value.length;
  } else {
    return value.length;
  }
}

console.log(getLength('Hello')); // 5
console.log(getLength(['a', 'b', 'c'])); // 3

Vantaggi del restringimento avanzato dei tipi

Vantaggi del restringimento avanzato dei tipi

Il restringimento avanzato dei tipi migliora il codice:

  • Riducendo gli errori a runtime.
  • Rendendo il codice più sicuro e facile da comprendere.
  • Offrendo un controllo preciso sulla gestione dei tipi.

Esercizio

Esercizio

Crei una funzione che accetti un parametro di tipo string | number e registri un messaggio diverso per ciascun tipo. Usi typeof per implementare la logica.

Congratulazioni!

Congratulazioni!

Ha imparato a usare tecniche avanzate di restringimento dei tipi in TypeScript per precisare e gestire tipi complessi in modo sicuro ed efficace. Si eserciti con queste tecniche per rendere il codice più robusto e sicuro dal punto di vista dei tipi!

Restringimento avanzato dei tipi — illustrazione 10

Domande Frequenti

La lezione «Restringimento avanzato dei tipi» è gratuita?

Sì — il testo completo di «Restringimento avanzato dei tipi» è 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 3 lezioni in totale.

Cosa imparerò in «Restringimento avanzato dei tipi»?

Impari a usare guardie di tipo avanzate e l'analisi del flusso di controllo per gestire facilmente condizioni di tipo complesse 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 3.

Quanto tempo richiede la lezione «Restringimento avanzato dei tipi»?

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. Restringimento avanzato dei tipi
  2. Funzionalità avanzate delle classi
  3. Tipi condizionali
← Torna a TypeScript Academy