Explica este código TypeScript
Dificultad: Básico
const obj = {
id: 1,
title: "test",
}
obj.description = "hello";
console.log(obj); // 🤔
- A.
{ description: "hello", id:1, title: "test" } - B.
TypeError - C.
{ id:1, title: "test" } - D.
ReferenceError
Respuesta en el primer comentario.
Top comments (1)
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
objes del tipo{ id: number; title: string; }lo que significa que debe tener un campoidy un campotitlesi o si, no mas campos ni menos.Al intentar agregar el campo
descriptionel contrato se rompe y esto causa la advertencia que nos arroja TypeScript.