Il tipo void nelle funzioni
Scopra in che modo void differisce da undefined nelle posizioni di ritorno delle funzioni.
Il tipo void nelle funzioni è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 3 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.
Il tipo di ritorno void
void descrive una funzione che non restituisce alcun valore utile. La funzione viene comunque completata: semplicemente non produce un risultato da utilizzare. È il tipo delle funzioni chiamate per i loro effetti collaterali.
function log(message: string): void {
console.log(message);
}
log('Hello void');void inferito
Se una funzione non contiene alcuna istruzione return (oppure contiene solo return; senza valore), TypeScript inferisce automaticamente void. Raramente è necessario scriverlo in modo esplicito, anche se farlo documenta l'intento.
function greet(name: string) {
console.log('Hi ' + name);
// no return -> inferred void
}
greet('Ada');void e undefined
Sono correlati, ma non sono la stessa cosa. Una funzione void può restituire effettivamente undefined oppure no, e non si dovrebbe fare affidamento sul suo valore di ritorno. Una funzione tipizzata per restituire undefined deve restituirlo esplicitamente.
function a(): void { /* returns nothing useful */ }
function b(): undefined { return undefined; }
console.log(a(), b());Non dovrebbe usare un risultato void
Il valore restituito a runtime da una chiamata void è undefined, ma il sistema dei tipi ne scoraggia l'utilizzo. Consideri void come «ignori questo valore di ritorno».
function save(): void {
console.log('saved');
}
const result = save(); // result has type void
console.log(result); // undefined at runtimevoid nei tipi di callback
Una regola sottile ma potente: una callback tipizzata per restituire void può essere soddisfatta da una funzione che restituisce un valore qualsiasi. Il valore di ritorno aggiuntivo viene semplicemente ignorato.
type Handler = () => void;
const h: Handler = () => 42; // returns number, still fine
h();
console.log('Returned value is ignored by callers');Perché esiste questa regola
Questa flessibilità consente di passare funzioni come arr.push (che restituisce un numero) come callback void. Il chiamante ha promesso di non usare il valore di ritorno, quindi qualsiasi valore restituito è innocuo.
const items: number[] = [];
const nums = [1, 2, 3];
nums.forEach((n) => items.push(n)); // push returns number, ok
console.log(items);void contestuale nei metodi degli array
forEach si aspetta una callback che restituisca void. Per questo può scrivere una arrow function su una sola riga che restituisce incidentalmente un valore senza ricevere errori: il tipo void contestuale lo assorbe.
const result: string[] = [];
['a', 'b'].forEach((x) => result.push(x.toUpperCase()));
console.log(result);Un errore comune
La regola delle callback void si applica al tipo della callback, non alle funzioni il cui tipo di ritorno è annotato come void. Una funzione dichiarata letteralmente come (): void non può comunque contenere un return value; con un valore diverso da undefined.
function f(): void {
return; // ok
// return 5; // Error: 5 not assignable to void
}
f();
console.log('declared void cannot return a value');I parametri void sono insoliti
Sebbene sia raro, void può comparire come tipo di parametro nei generics avanzati. Nel codice quotidiano lo vedrà quasi sempre come tipo di ritorno, per indicare «nessun risultato significativo».
type Listener = (event: string) => void;
const onClick: Listener = (e) => console.log('Event:', e);
onClick('click');void con le Promise
Le funzioni asincrone restituiscono spesso Promise<void> quando eseguono un'attività ma si risolvono senza alcun valore. Questo schema rispecchia il void sincrono nel codice asincrono.
async function sync(): Promise<void> {
console.log('syncing...');
// resolves with no value
}
sync().then(() => console.log('done'));Scegliere void consapevolmente
Annoti void quando vuole comunicare che una funzione esiste per i suoi effetti collaterali e che i chiamanti non devono dipendere da un valore di ritorno. In questo modo chiarisce l'intento e può sfruttare la regola flessibile delle callback.
function notify(msg: string): void {
console.log('NOTIFY:', msg);
}
const handlers: Array<(m: string) => void> = [notify];
handlers.forEach((fn) => fn('ping'));Verifica rapida
Verifichi la sua comprensione del tipo void.
Riepilogo: void
Ha imparato che void:
- Indica le funzioni che restituiscono nessun valore utile.
- È diverso da
undefined: i risultati void non dovrebbero essere utilizzati. - Come tipo di callback, accetta funzioni che restituiscono qualsiasi valore, ignorato dai chiamanti.
- Consente di usare in modo chiaro metodi come
pushall'interno diforEach.
Ora mettiamo tutto insieme: gestire unknown in sicurezza.
const tasks: Array<() => void> = [
() => console.log('task 1'),
() => console.log('task 2')
];
tasks.forEach((t) => t());Impara TypeScript con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 101
- Lezioni
- 352
Domande Frequenti
La lezione «Il tipo void nelle funzioni» è gratuita?
Sì — il testo completo di «Il tipo void nelle 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 «Il tipo void nelle funzioni»?
Scopra in che modo void differisce da undefined nelle posizioni di ritorno delle funzioni. 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 3 di 4.
Quanto tempo richiede la lezione «Il tipo void nelle 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
- Capire unknown e any
- Il tipo never e gli stati impossibili
- Il tipo void nelle funzioni
- Gestire unknown in modo type-safe