DocumentX Logo
DocumentX.
Ctrl+K
TypeScript/Tipos de Datos

Tipos Especiales

Documentación de los tipos especiales en TypeScript y su uso en funciones y variables.

Tipos Especiales en TypeScript

TypeScript ofrece tipos de datos especiales para controlar el comportamiento del compilador en situaciones donde los tipos primitivos convencionales no son suficientes.


1. Tipo void

Representa la ausencia de un valor de retorno. Se utiliza principalmente en funciones que ejecutan una acción pero no devuelven ningún dato mediante la sentencia return.

typescript// Función que realiza una acción pero no retorna nada
function mostrarMensaje(nombre: string): void {
    console.log(`Hola, ${nombre}`);
}

// ✅ Válido: Ejecutar la función
mostrarMensaje("Carlos");

// ❌ Error: No se puede asignar el resultado de una función void a un tipo de dato
// let resultado: string = mostrarMensaje("Carlos");

2. Tipo any

Desactiva completamente el sistema de comprobación de tipos de TypeScript. Permite asignar cualquier valor y cambiar de tipo en cualquier momento. (Se recomienda evitar su uso).

typescriptlet datoFlexible: any = "Carlos";

// ✅ Válido: Permite reasignar a cualquier tipo sin error
datoFlexible = 25;
datoFlexible = true;

3. Tipo unknown

Es la alternativa segura a any. Permite almacenar cualquier tipo de valor, pero TypeScript te obliga a verificar el tipo con typeof antes de realizar operaciones con él.

typescriptlet datoDesconocido: unknown = "Carlos";

// ❌ Error: No se puede usar métodos de string directamente sin verificar
// console.log(datoDesconocido.toUpperCase());

// ✅ Válido: Se debe verificar el tipo antes de usarlo
if (typeof datoDesconocido === "string") {
    console.log(datoDesconocido.toUpperCase()); // Imprime "CARLOS"
}

4. Tipo never

Representa valores que nunca llegan a suceder. Se utiliza en funciones que lanzan una excepción o entran en un bucle infinito, por lo que nunca terminan su ejecución de forma normal.

typescript// Función que siempre lanza un error y jamás retorna un valor
function lanzarError(mensaje: string): never {
    throw new Error(mensaje);
}

// ❌ Error: Un tipo never no produce ningún valor asignable
// let valor: string = lanzarError("Error crítico");

Tabla Resumen

TipoDescripciónCaso de Uso Principal
voidLa función no devuelve nadafunction(): void
anyDesactiva el control de tiposEvitar en producción
unknownValor de tipo incierto pero seguroRequiere comprobación typeof
neverCódigo inalcanzable o que lanza errorExcepciones o bucles infinitos