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.

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.

Certifícate en TypeScript con CertiDevs PLUS

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.

Funciones

TypeScript
Test

Funciones de primera clase

TypeScript
Puzzle

Tipos de utilidad

TypeScript
Puzzle

Clases

TypeScript
Test

OOP y CRUD en TypeScript

TypeScript
Proyecto

Tipos literales

TypeScript
Test

Namespaces

TypeScript
Test

Módulos

TypeScript
Test

Funciones TypeScript

TypeScript
Código

Encapsulación

TypeScript
Puzzle

Interfaces

TypeScript
Puzzle

Funciones puras

TypeScript
Puzzle

Variables y constantes

TypeScript
Código

Funciones flecha

TypeScript
Puzzle

Funciones puras

TypeScript
Test

Control de flujo

TypeScript
Código

Resolución de módulos

TypeScript
Test

Control de flujo

TypeScript
Puzzle

Polimorfismo

TypeScript
Test

Operadores

TypeScript
Test

Funciones flecha

TypeScript
Test

Herencia

TypeScript
Puzzle

Clases y objetos

TypeScript
Código

Clases

TypeScript
Puzzle

Operadores

TypeScript
Puzzle

Encapsulación

TypeScript
Test

Herencia

TypeScript
Test

Funciones

TypeScript
Puzzle

Tipos de unión e intersección

TypeScript
Test

Funciones de alto orden

TypeScript
Puzzle

Inmutabilidad

TypeScript
Puzzle

Interfaces

TypeScript
Test

Funciones de alto orden

TypeScript
Test

Tipos de unión e intersección

TypeScript
Puzzle

Tipos genéricos

TypeScript
Test

Control de flujo

TypeScript
Test

Polimorfismo

TypeScript
Puzzle

Interfaces

TypeScript
Código

Tipos literales

TypeScript
Puzzle

Tipos de utilidad

TypeScript
Test

Tipos genéricos

TypeScript
Puzzle

Inmutabilidad

TypeScript
Test

Herencia de clases

TypeScript
Código

Variables y constantes

TypeScript
Test

Variables y constantes

TypeScript
Puzzle

Funciones de primera clase

TypeScript
Test

Introducción a TypeScript

TypeScript
Test

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.

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.