Welcome back! I am Mihir, and in this lesson we will learn the void type in TypeScript.
void is mostly used as a function return type. It means the function does not return a useful value.
What is void?
Use void when a function performs an action but does not return data.
function logMessage(message: string): void {
console.log(message);
}This function prints a message, but it does not return anything useful.
void Function Examples
Logging:
function logError(error: string): void {
console.error(error);
}Updating state:
function markComplete(): void {
console.log("Task completed");
}Sending a notification:
function notifyUser(message: string): void {
console.log(`Notification: ${message}`);
}All of these functions do something, but they do not return useful values.
Returning a Value from void
This is invalid:
function getName(): void {
return "Mihir";
}The function says it returns void, but it returns a string.
Correct:
function getName(): string {
return "Mihir";
}Use void only when callers should not expect a returned value.
void with Function Types
You can use void in function type expressions.
type Logger = (message: string) => void;
const log: Logger = (message) => {
console.log(message);
};This says Logger is a function that accepts a string and does not return useful data.
void with Callbacks
Callbacks often return void.
function runTask(callback: () => void): void {
callback();
}
runTask(() => {
console.log("Task finished");
});The callback is called for its side effect.
void with Event Handlers
Event handlers commonly return void.
function handleClick(): void {
console.log("Button clicked");
}In UI code, handlers usually update state, call APIs, or trigger behavior instead of returning data.
void vs undefined
undefined is a value.
let value: undefined = undefined;void is usually used to describe a function return.
function log(): void {
console.log("Hello");
}For beginners, the simple rule is:
- use
voidfor functions that return nothing useful - use
undefinedwhen a variable or property can be missing
Type Inference with void
TypeScript can infer void when a function does not return.
function printCourse(title: string) {
console.log(title);
}TypeScript infers the return type as void.
Writing it explicitly is helpful when you want the function contract to be clear:
function printCourse(title: string): void {
console.log(title);
}Common Mistake: Using void for Variables
You almost never need this:
let value: void;In regular code, use void for function returns, not normal variables.
Quick Reference Summary
| Concept | Example |
|---|---|
| Void function | function log(): void |
| Callback returning void | callback: () => void |
| Function type | (message: string) => void |
| Event handler | function handleClick(): void |
| Inferred void | function with no return |
| Different from undefined | undefined is a value |
Practice
Create a function that prints a course summary:
function printCourseSummary(title: string, lessons: number): void {
console.log(`${title} has ${lessons} lessons.`);
}
printCourseSummary("TypeScript Basics", 12);Try returning a string from this function and see what TypeScript says.
What You've Learned
You now understand:
- What
voidmeans - Why
voidis mostly used for functions - How void functions differ from functions that return data
- How to use
voidin callbacks - How event handlers commonly use
void - The difference between
voidandundefined
What's Next?
In the next lesson, we will learn Arrays and Tuples in TypeScript.
We will type lists, readonly arrays, mixed arrays, and fixed-position values.
Need Help?
- Have questions, confusion, or want to know more? Contact me
void keeps function contracts honest: this function does work, but it does not hand back data.