Búsqueda de sitios web

typescript - ¿Cuáles son las diferencias entre el tipo de objeto vacío y Object?


He notado que TypeScript admite el uso de los siguientes tipos:

  • {} (mencionado en las especificaciones como Tipo de Objeto Vacío)
  • Object

Ambos parecen ser equivalentes e intercambiables hasta donde puedo decir. ¿Cuáles son las diferencias entre ellos?

Respuesta #1

Dentro del contexto de TypeScript, no hay una diferencia práctica pero sí hay una diferencia semántica. Todos los miembros del Object están presentes implícitamente en todos los objetos.

{} significa algo que no tiene miembros propios. {} todavía tendría todos los miembros de Object. Así que son intercambiables en TypeScript.

// Extend ALL objects
interface Object{
    baz:number;
}

var foo:{} = {};
var bar:Object = {};

foo.baz = 123;
bar.baz = 123;

Personalmente, nunca he declarado una variable como una de estas. Tal vez deberías usar any, que es algo compatible con todo.

Respuesta #2

Siempre lo he entendido como que Object se refiere al tipo de objeto de JavaScript. Comúnmente se usa como {} o a veces new Object.

Creo que son equivalentes.

Artículos relacionados