DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Updated on

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

Explica este código TypeScript

Dificultad: Básico

const obj = {
  id: 1,
  title: "test",
}
obj.description = "hello";
console.log(obj); // 🤔
Enter fullscreen mode Exit fullscreen mode
  • A. { description: "hello", id:1, title: "test" }
  • B. TypeError
  • C. { id:1, title: "test" }
  • D. ReferenceError

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando • Edited

Respuesta
✅ A. { description: "hello", id:1, title: "test" }

La respuesta de este reto es un poco trampa y vamos a explicar por que.

El código del reto tanto en JavaScript como en TypeScript se ejecuta sin ningún error, peeero en TypeScript nos marca una advertencia: Property 'description' does not exist on type '{ id: number; title: string; }'; ¿pero por que pasa esto?

En TypeScript los objetos literales son como interfaces anónimas, lo que quiere decir que deben cumplir el contrato que las contiene.

En nuestro ejemplo, el objeto obj es del tipo { id: number; title: string; } lo que significa que debe tener un campo id y un campo title si o si, no mas campos ni menos.

Al intentar agregar el campo description el contrato se rompe y esto causa la advertencia que nos arroja TypeScript.