DEV Community

Cover image for Generics - Tipos dinámicos
Luis Osorio
Luis Osorio

Posted on

Generics - Tipos dinámicos

Explicando los tipos dinámicos en TypeScript

Es una forma de decirle a TypeScript que un tipo puede ser dinámico, es decir, que no se conoce exactamente hasta que se usa. Nos permite escribir código reutilizable y flexible, sin perder la seguridad de tipos.

Ejemplo:

function wrapInArray<T>(element: T): T[] {
  return [element];
}

const numero = wrapInArray<number>(5); // number[]
const texto = wrapInArray<string>("hola"); // string[]
Enter fullscreen mode Exit fullscreen mode

Donde T es el tipo dinamico.

También se pueden pasar varios tipos dinámicos

function combinar<T, U>(a: T, b: U): [T, U] {
  return [a, b];
}

const resultado = combinar<string, number>("edad", 25); // ["edad", 25]
Enter fullscreen mode Exit fullscreen mode

Se pueden definir tipos por default 🥴

function obtenerElemento<T = string>(elemento: T): T {
  return elemento;
}

const porDefecto = obtenerElemento("hola"); // T es string
const personalizado = obtenerElemento<number>(5); // T es number
Enter fullscreen mode Exit fullscreen mode

Si no le definimos su "tipado", lo infiere automáticamente.

function duplicar<T>(valor: T): [T, T] {
  return [valor, valor];
}

const res = duplicar(42); // Infiere que T es number
Enter fullscreen mode Exit fullscreen mode

Top comments (3)

Collapse
 
nevodavid profile image
Nevo David

pretty cool seeing how typescript handles all that wild type stuff tbh - you think leaning too much on generics ever makes the code kinda harder to read for folks later?

Collapse
 
luisfosg profile image
Luis Osorio

I think it's important to evaluate whether dynamic typing is truly necessary. I wouldn't recommend using it excessively — it's best reserved for specific cases.

Collapse
 
joisephdev profile image
Roimer Peraza

Hago esto mismo pero en Dart. Excelente 🙌🏽