TypeScript

TypeScript

Tutorial TypeScript: Tipos de unión e intersección

TypeScript unión e intersección: tipos y ejemplos. Domina los tipos de unión e intersección en TypeScript con ejemplos prácticos y detallados.

Aprende TypeScript GRATIS y certifícate

En TypeScript, las uniones (union) y las intersecciones (intersection) son tipos avanzados que permiten combinar de manera flexible otros tipos de datos.

Uniones

El tipo de unión permite definir una variable que puede ser de varios tipos de datos. Es una manera de decirle al compilador que una variable puede tener más de un tipo. Para definir una unión, se utiliza el símbolo de tubería o pipe | entre los tipos que se quieren unir.

Un ejemplo básico de una unión sería:

let miVariable: string | number;
miVariable = 'Hola'; // Correcto
miVariable = 10;     // Correcto
miVariable = true;   // Error: Type 'boolean' is not assignable to type 'string | number'

En el código anterior, miVariable puede ser tanto un string como un number. Sin embargo, si se intenta asignar un boolean, TypeScript lanzará un error ya que boolean no está en la unión de tipos que se definió.

Los tipos de unión también pueden usarse con tipos de datos más complejos, como objetos. Por ejemplo:

type Auto = {
  marca: string;
  modelo: string;
};

type Moto = {
  marca: string;
  tipo: string;
};

let miVehiculo: Auto | Moto;

miVehiculo = { marca: 'Toyota', modelo: 'Corolla' }; // Correcto
miVehiculo = { marca: 'Yamaha', tipo: 'Deportiva' }; // Correcto
miVehiculo = { marca: 'Ford', color: 'Azul' };       // Error: Property 'color' does not exist in type 'Auto | Moto'

En este caso, miVehiculo puede ser tanto un Auto como una Moto.

Intersecciones

Los tipos de intersección permiten combinar múltiples tipos en uno. Esto puede ser útil para mezclar la funcionalidad de múltiples estructuras de datos. Para definir una intersección, se utiliza el símbolo & entre los tipos que se quieren intersecar.

Por ejemplo:

type Estudiante = {
  nombre: string;
  promedio: number;
};

type Trabajador = {
  empresa: string;
  salario: number;
};

type EstudianteTrabajador = Estudiante & Trabajador;

let juan: EstudianteTrabajador = {
  nombre: 'Juan',
  promedio: 9.5,
  empresa: 'OpenAI',
  salario: 3000,
}; // Correcto

let ana: EstudianteTrabajador = {
  nombre: 'Ana',
  empresa: 'OpenAI',
}; // Error: Type '{ nombre: string; empresa: string; }' is missing the following properties from type 'EstudianteTrabajador': promedio, salario

En el ejemplo anterior, EstudianteTrabajador es un tipo que combina las propiedades de Estudiante y Trabajador. De modo que un objeto de tipo EstudianteTrabajador debe tener todas las propiedades de ambas clases.

En resumen, las uniones y las intersecciones en TypeScript brindan mayor flexibilidad al trabajar con tipos de datos. Permiten a los desarrolladores crear estructuras de datos más complejas y específicas, mejorando la seguridad y la eficiencia del tipo.

Aprende TypeScript GRATIS online

Ejercicios de esta lección Tipos de unión e intersección

Evalúa tus conocimientos de esta lección Tipos de unión e intersección con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

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.

Accede GRATIS a TypeScript y certifícate

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

  1. Comprender el concepto de uniones y cómo permiten definir una variable con varios tipos posibles.
  2. Aprender a utilizar el símbolo | para definir una unión entre tipos.
  3. Conocer cómo las uniones son útiles para mejorar la flexibilidad y la eficiencia del tipo en el código.
  4. Entender cómo las uniones pueden ser aplicadas a tipos de datos complejos, como objetos.
  5. Aprender a utilizar las intersecciones para combinar múltiples tipos en uno.
  6. Conocer el símbolo & como el operador para definir una intersección entre tipos.
  7. Reconocer cómo las intersecciones son útiles para crear estructuras de datos más específicas y mejorar la seguridad del tipo en el código.