TypeScript
Tutorial TypeScript: Tipos de utilidad
TypeScript tipos utilidad: ejemplos prácticos. Aprende a usar tipos de utilidad en TypeScript con ejemplos prácticos y detallados.
Aprende TypeScript GRATIS y certifícateTypeScript es conocido por su sólido sistema de tipos. Este sistema permite una gran variedad de utilidades para trabajar con tipos de forma segura y eficiente. Algunos de estos tipos de utilidad incluyen Partial
, Readonly
, Record
, Pick
, Omit
, Exclude
, Extract
, NonNullable
, ReturnType
, InstanceType
y más.
Partial
Partial
es una utilidad de TypeScript que hace que todos los campos de un tipo sean opcionales.
interface Usuario {
nombre: string;
edad: number;
}
function actualizarUsuario(usuario: Partial<Usuario>) {
// ...
}
actualizarUsuario({ nombre: "John", edad: 30 }); // válido
actualizarUsuario({ nombre: "John" }); // válido
actualizarUsuario({ edad: 30 }); // válido
actualizarUsuario({}); // también válido
En el ejemplo anterior, la función actualizarUsuario
toma un objeto de tipo Partial<Usuario>
, lo que significa que se puede pasar un objeto que tenga cualquier subconjunto de los campos de Usuario
.
Readonly
Readonly
hace que todos los campos de un tipo sean de solo lectura.
interface Usuario {
nombre: string;
edad: number;
}
let john: Readonly<Usuario> = {
nombre: "John",
edad: 30,
};
john.edad = 31; // Error: No se puede asignar a 'edad' porque es una propiedad de lectura.
Record
Record
es una utilidad que crea un tipo cuyas propiedades son del tipo proporcionado.
type Animales = 'gato' | 'perro';
type Sonidos = 'miau' | 'guau';
const sonidos: Record<Animales, Sonidos> = {
gato: 'miau',
perro: 'guau',
};
Pick
Pick
permite seleccionar subconjuntos de propiedades de un tipo.
interface Usuario {
nombre: string;
edad: number;
email: string;
}
type UsuarioConEmail = Pick<Usuario, "email">;
const john: UsuarioConEmail = {
email: "john@example.com",
};
Omit
Omit
permite excluir subconjuntos de propiedades de un tipo.
interface Usuario {
nombre: string;
edad: number;
email: string;
}
type UsuarioSinEmail = Omit<Usuario, "email">;
const john: UsuarioSinEmail = {
nombre: "John",
edad: 30,
};
Exclude y Extract
Exclude
y Extract
permiten respectivamente excluir o extraer tipos de un tipo de unión.
type Animales = 'gato' | 'perro' | 'pez';
type Mascotas = Exclude<Animales, 'pez'>; // 'gato' | 'perro'
type AnimalesAcuaticos = Extract<Animales, 'pez'>; // 'pez'
NonNullable
NonNullable
excluye null
y undefined
de un tipo.
type Animales = 'gato' | 'perro' | null | undefined;
type Mascotas = NonNullable<Animales>; // 'gato' | 'perro'
ReturnType y InstanceType
ReturnType
y InstanceType
permiten obtener el tipo de retorno de una función y el tipo de una instancia de clase, respectivamente.
function saludo(nombre: string): string {
return `Hola, ${nombre}`;
}
type Saludo = ReturnType<typeof saludo>; // type Saludo = string
class Usuario {
constructor(public nombre: string, public edad: number) {}
}
type InstanciaUsuario = InstanceType<typeof Usuario>; // type InstanciaUsuario = Usuario
Estos son solo algunos de los tipos de utilidad que TypeScript proporciona. Al combinarlos y usarlos en las situaciones correctas, pueden proporcionar una gran cantidad de seguridad y flexibilidad de tipo en código TypeScript.
Ejercicios de esta lección Tipos de utilidad
Evalúa tus conocimientos de esta lección Tipos de utilidad con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Funciones
Funciones de primera clase
Tipos de utilidad
Clases
OOP y CRUD en TypeScript
Tipos literales
Namespaces
Módulos
Funciones TypeScript
Encapsulación
Interfaces
Funciones puras
Variables y constantes
Funciones flecha
Funciones puras
Control de flujo
Resolución de módulos
Control de flujo
Polimorfismo
Operadores
Funciones flecha
Herencia
Clases y objetos
Clases
Operadores
Encapsulación
Herencia
Funciones
Tipos de unión e intersección
Funciones de alto orden
Inmutabilidad
Interfaces
Funciones de alto orden
Tipos de unión e intersección
Tipos genéricos
Control de flujo
Polimorfismo
Interfaces
Tipos literales
Tipos de utilidad
Tipos genéricos
Inmutabilidad
Herencia de clases
Variables y constantes
Variables y constantes
Funciones de primera clase
Introducción a TypeScript
Todas las lecciones de TypeScript
Accede a todas las lecciones de TypeScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Typescript
Introducción Y Entorno
Variables Y Constantes
Sintaxis
Operadores
Sintaxis
Control De Flujo
Sintaxis
Funciones
Sintaxis
Funciones Flecha
Sintaxis
Clases Y Objetos
Programación Orientada A Objetos
Interfaces
Programación Orientada A Objetos
Encapsulación
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Inmutabilidad
Programación Funcional
Funciones Puras
Programación Funcional
Funciones De Primera Clase
Programación Funcional
Funciones De Alto Orden
Programación Funcional
Tipos Literales
Tipos De Datos Avanzados
Tipos Genéricos
Tipos De Datos Avanzados
Tipos De Unión E Intersección
Tipos De Datos Avanzados
Tipos De Utilidad
Tipos De Datos Avanzados
Módulos
Namespaces Y Módulos
Namespaces
Namespaces Y Módulos
Resolución De Módulos
Namespaces Y Módulos
Certificados de superación de TypeScript
Supera todos los ejercicios de programación del curso de TypeScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender las utilidades
Partial
,Readonly
,Record
,Pick
,Omit
,Exclude
,Extract
,NonNullable
,ReturnType
yInstanceType
. - Aprender a usar
Partial
para hacer campos opcionales en un tipo. - Conocer cómo
Readonly
hace que los campos de un tipo sean de solo lectura. - Entender cómo
Record
crea un tipo con propiedades del tipo proporcionado. - Aprender a utilizar
Pick
para seleccionar subconjuntos de propiedades de un tipo. - Conocer cómo
Omit
permite excluir subconjuntos de propiedades de un tipo. - Reconocer cómo
Exclude
yExtract
trabajan con tipos de unión para excluir o extraer tipos específicos. - Aprender a utilizar
NonNullable
para excluirnull
yundefined
de un tipo. - Comprender cómo
ReturnType
yInstanceType
obtienen el tipo de retorno de una función y el tipo de una instancia de clase, respectivamente.