El tipo void
en TypeScript representa la ausencia de un valor. Es similar al concepto de void
que encontramos en otros lenguajes de programación (como C++ y C#).
Se utiliza principalmente en el contexto de funciones para indicar que una función no retorna ningún valor significativo.
Cuando una función está diseñada para realizar una acción (a veces llamado efecto secundario), como modificar un estado o imprimir un mensaje en la consola. Entonces no necesita devolver un resultado, se especifica el tipo void
.
function saludar(): void {
console.log("Hola, mundo!");
}
let resultado: void = saludar(); // Correcto, pero innecesario
// resultado = 1; // Error: No se puede asignar el tipo 'number' al tipo 'void'.
En el ejemplo anterior, la función saludar
tiene un tipo de retorno void
, lo que significa que no devuelve ningún valor.
void
es un subtipo de undefined
. Esto significa que el valor undefined
es una representación válida del tipo void
, y puede ser utilizado en contextos donde se espera un valor void
.
Asignación de variables
Una variable de tipo void
, no se puede asignar. Únicamente puede recibir undefined
como valor.
function imprimirMensaje(mensaje: string): void {
console.log(mensaje);
}
const resultado: void = imprimirMensaje("Mensaje sin valor de retorno");
console.log(resultado); // undefined
Aquí, el tipo de la variable resultado es void
, ya que la función imprimirMensaje
no devuelve ningún valor.
En general, el tipo void
no se usa para declarar variables. Su propósito principal es en las funciones. Sin embargo, algunas expresiones pueden tener un tipo void
, especialmente cuando se están utilizando funciones con efectos secundarios
Casos de uso comunes
Funciones de efecto secundario
Las funciones que se utilizan para realizar acciones pero no necesitan devolver un valor, como las funciones que imprimen en consola o modifican variables globales, suelen tener el tipo de retorno void
.
function registrarMensaje(mensaje: string): void {
console.log(mensaje);
}
registrarMensaje("Este es un mensaje de registro."); // Este es un mensaje de registro.
Interfaces
En las interfaces, los métodos que no retornan un valor también se definen con el tipo void
.
interface Procesador {
iniciar(): void;
detener(): void;
}
class Computadora implements Procesador {
iniciar(): void {
console.log("Computadora iniciada.");
}
detener(): void {
console.log("Computadora detenida.");
}
}
let pc: Computadora = new Computadora();
pc.iniciar(); // Computadora iniciada.
pc.detener(); // Computadora detenida.