0Pricing
TypeScript Academy · Lezione

void, never e firme delle funzioni

Comprenda void per le funzioni che non restituiscono valori e never per il codice irraggiungibile.

void, never e firme delle funzioni è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 4 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

Due tipi restituiti speciali, void e never, rappresentano rispettivamente le funzioni che non producono un valore utile e quelle che non terminano mai normalmente.

void: nessun valore significativo restituito

void viene utilizzato quando una funzione esegue un effetto collaterale ma non restituisce un valore. Consente di restituire undefined, ma segnala che il valore restituito non deve essere utilizzato.
function logError(msg: string): void {
  console.error(msg);
  // implicit return undefined
}

Differenza tra void e undefined

void e undefined sono simili, ma diversi. Una funzione tipizzata con void può restituire undefined. Tuttavia, void segnala al chiamante di ignorare il valore restituito.
const fn: () => void = () => 42; // Allowed! Caller ignores return
const fn2: () => undefined = () => 42; // Error

void nelle callback

Quando si tipizza un parametro callback, void indica che il chiamante non utilizza il valore restituito. Questo consente alle callback di restituire qualsiasi tipo.
function run(cb: () => void): void { cb(); }
run(() => 'hello'); // OK — return value ignored

never: il tipo irraggiungibile

never rappresenta un valore che non si verifica mai. Una funzione che restituisce never genera un'eccezione o esegue un ciclo infinito.
function fail(msg: string): never {
  throw new Error(msg);
}
function loop(): never {
  while (true) {}
}

never nei controlli di esaustività

never viene utilizzato nelle istruzioni switch per assicurarsi che tutti i casi di un'unione siano gestiti. Un'assegnazione a never genera un errore se manca un caso.
type Shape = 'circle' | 'square';
function area(s: Shape): number {
  switch (s) {
    case 'circle': return 3.14;
    case 'square': return 1;
    default:
      const _: never = s; // Error if a new shape is added
      return 0;
  }
}

never è un sottotipo di tutto

never è assegnabile a ogni tipo, perché non si verifica mai e quindi soddisfa vacuamente qualsiasi tipo. Nessun altro tipo è assegnabile a never.

Firme dei tipi funzione

Un tipo funzione viene scritto come `(param: Type) => ReturnType`. Questo descrive le funzioni come valori di prima classe.
type Handler = (event: MouseEvent) => void;
type Transform = (input: string) => string;

Firme di chiamata nelle interfacce

Le interfacce possono definire tipi chiamabili utilizzando la sintassi delle firme di chiamata.
interface Formatter {
  (value: string): string;
  locale: string;
}

Firme di costruzione

Le interfacce possono anche definire tipi istanziabili utilizzando la parola chiave new in una firma di costruzione.
interface Constructor {
  new (name: string): Animal;
}

Combinare void e never nella gestione degli errori

Le funzioni che generano sempre un'eccezione utilizzano never. Le funzioni che gestiscono gli errori senza propagarli e non restituiscono nulla utilizzano void. Questa distinzione è importante per l'analisi del flusso di controllo.
function orThrow(val: string | null): string {
  if (val === null) fail('null!'); // never
  return val; // TypeScript knows this is reachable
}

Verifica rapida

Quale tipo restituito indica che una funzione genererà sempre un errore e non restituirà mai un valore normalmente?

Riepilogo

Utilizzi void per le funzioni con effetti collaterali che non restituiscono valori significativi. Utilizzi never per le funzioni che generano eccezioni o eseguono cicli infiniti. never abilita i controlli di esaustività ed è un sottotipo di tutti i tipi.

Domande Frequenti

La lezione «void, never e firme delle funzioni» è gratuita?

Sì — il testo completo di «void, never e firme delle funzioni» è 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 «void, never e firme delle funzioni»?

Comprenda void per le funzioni che non restituiscono valori e never per il codice irraggiungibile. 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 4 di 4.

Quanto tempo richiede la lezione «void, never e firme delle funzioni»?

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. Annotazioni dei parametri e dei tipi restituiti
  2. Parametri opzionali e predefiniti
  3. Parametri rest e spread con i tipi
  4. void, never e firme delle funzioni
← Torna a TypeScript Academy