DEV Community

Cover image for Paracetamol.ts💊| #47: Explica este código TypeScript
Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.ts💊| #47: Explica este código TypeScript

Explica este código TypeScript

Dificultad: Avanzado

type Animal = "perro" | "gato" | "conejo";

type ConteoAnimal = {
    [U in Animal]: number;
}

const miAnimal:ConteoAnimal = {
    perro:20,
    gato:30,
}
Enter fullscreen mode Exit fullscreen mode
  • A. TypeError
  • B. Property 'conejo' is missing in type '{ perro: number; gato: number; }' but required in type 'ConteoAnimal'
  • C. Todo funciona bien
  • D. Ninguna de las anteriores

Respuesta

✅ B. Property 'conejo' is missing in type '{ perro: number; gato: number; }' but required in type 'ConteoAnimal'

En TypeScript tenemos los Mapped Types. Sirven para relacionar dos types entre si para un fin en común.
En este caso relacionamos el tipo literal Animal con ConteoAnimal. El generico U de [U in Animal] establece que el tipo ConteoAnimal debe tener como llaves todos los literales de Animal, por ello al crear el objeto miAnimal y no tener la llave conejo falla.


Top comments (0)