Utility Types de TypeScript que deberías conocer

CSS code displayed on a computer screen highlighting programming concepts and technology.
Foto de Bibek ghosh en Pexels

En el mundo de TypeScript, los Utility Types son una serie de tipos auxiliares que nos permiten manejar y transformar otros tipos de manera más eficiente y segura. Estos tipos son especialmente útiles cuando trabajamos con grandes cantidades de código y necesitamos asegurarnos de que nuestros tipos sean lo más precisos y mantenibles posible.

1. Pick

El tipo Pick nos permite seleccionar ciertas propiedades de un objeto y crear un nuevo tipo con solo esas propiedades. Por ejemplo:

interface Persona {
nombre: string;
edad: number;
direccion: string;
}

type PersonaConNombreYEdad = Pick<Persona, 'nombre' | 'edad'>;

En este ejemplo, el tipo PersonaConNombreYEdad tendrá solo las propiedades nombre y edad de la interface Persona.

2. Omit

El tipo Omit es justo lo contrario de Pick. En lugar de seleccionar ciertas propiedades, Omit nos permite crear un nuevo tipo que incluye todas las propiedades de un objeto menos las que especifiquemos. Por ejemplo:

interface Persona {
nombre: string;
edad: number;
direccion: string;
}

type PersonaSinDireccion = Omit<Persona, 'direccion'>;

En este caso, el tipo PersonaSinDireccion incluirá todas las propiedades de Persona menos direccion.

3. Partial

El tipo Partial nos permite crear un nuevo tipo en el que todas las propiedades de un objeto son opcionales. Por ejemplo:

interface Persona {
nombre: string;
edad: number;
direccion: string;
}

type PersonaParcial = Partial<Persona>;

En este ejemplo, el tipo PersonaParcial tendrá todas las propiedades de Persona, pero todas ellas serán opcionales.

4. Readonly

El tipo Readonly nos permite crear un nuevo tipo que es idéntico a otro tipo, pero con todas sus propiedades convertidas en de solo lectura. Por ejemplo:

interface Persona {
nombre: string;
edad: number;
direccion: string;
}

type PersonaDeSoloLectura = Readonly<Persona>;

En este caso, el tipo PersonaDeSoloLectura tendrá las mismas propiedades que Persona, pero no podremos modificarlas una vez que el objeto ha sido creado.

Conclusión

Los Utility Types de TypeScript son una herramienta poderosa que nos permite trabajar de manera más eficiente y segura con nuestros tipos. Aprender a utilizarlos puede ser un gran paso hacia adelante en nuestra carrera como desarrolladores de software, ya que nos permiten escribir código más mantenible, escalable y fácil de entender.