"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Las diferencias entre &#Objeto&#, &#{}&# y &#objeto&# en TypeScript

Las diferencias entre &#Objeto&#, &#{}&# y &#objeto&# en TypeScript

Publicado el 2024-07-30
Navegar:559

En TypeScript, cuando queremos definir un tipo de objeto, hay varias opciones concisas como 'Objeto', '{}' y 'objeto'. ¿Cuáles son las diferencias entre ellos?

Objeto (en mayúsculas)

Objeto (mayúsculas) describe propiedades comunes a todos los objetos JavaScipt. Está definido en el archivo lib.es5.d.ts que viene con la biblioteca TypeScript.

The Differences Between

Como puede ver, incluye algunas propiedades comunes como toString(), valueOf(), etc.

Porque enfatiza solo aquellas propiedades que son comunes a los objetos JavaScript. Por lo tanto, puede asignarle objetos encajonables como cadena, booleano, número, bigint, símbolo, pero no al revés.

The Differences Between

{}

{} describe un objeto que no tiene miembros propios, lo que significa que TypeScript se quejará si intentas acceder a sus miembros de propiedad:

The Differences Between

En el ejemplo de código anterior, podemos ver que {} y Objeto (en mayúsculas) tienen las mismas características. Es decir, solo puede acceder a aquellas propiedades que son comunes (incluso si la lógica del código JavaScript es correcta), se le pueden asignar todos los objetos encajonables, etc.

Esto se debe a que el tipo {} puede acceder a esas propiedades comunes a través de la cadena del prototipo y tampoco tiene propiedades propias. Por lo tanto, se comporta igual que el tipo Objeto (mayúscula). Pero representan conceptos diferentes.

objeto (en minúscula)

objeto (en minúscula) significa cualquier tipo no primitivo, que se expresa en un código como este:

type PrimitiveType =
  | undefined
  | null
  | string
  | number
  | boolean
  | bigint
  | symbol;

type NonPrimitiveType = object;

Esto significa que no se le pueden asignar todos los tipos no primitivos, y viceversa.

The Differences Between

Merienda: Grabar

En el código fuente de muchas bibliotecas comunes, es posible que veamos Record para representar tipos no primitivos. Tiene el mismo efecto que objeto (en minúsculas), pero es más semántico.


Si encuentra útil mi contenido, considere suscribirse. Envío un _ boletín semanal todos los domingos _ con las últimas actualizaciones de desarrollo web. ¡Gracias por su apoyo!

Declaración de liberación Este artículo se reproduce en: https://dev.to/zacharylee/the-differences-between-object-and-object-in-typescript-f6f?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3