„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Die Unterschiede zwischen „Object“, „{}“ und „Object“ in TypeScript

Die Unterschiede zwischen „Object“, „{}“ und „Object“ in TypeScript

Veröffentlicht am 30.07.2024
Durchsuche:443

Wenn wir in TypeScript einen Objekttyp definieren möchten, gibt es mehrere prägnante Optionen wie „Object“, „{}“ und „Object“. Was sind die Unterschiede zwischen ihnen?

Objekt (in Großbuchstaben)

Objekt (in Großbuchstaben) beschreibt Eigenschaften, die allen JavaScipt-Objekten gemeinsam sind. Es ist in der Datei lib.es5.d.ts definiert, die mit der TypeScript-Bibliothek geliefert wird.

The Differences Between

Wie Sie sehen können, enthält es einige allgemeine Eigenschaften wie toString(), valueOf() usw.

Weil es nur die Eigenschaften hervorhebt, die JavaScript-Objekten gemeinsam sind. Sie können ihm also boxbare Objekte wie String, Boolean, Zahl, Bigint, Symbol zuweisen, aber nicht umgekehrt.

The Differences Between

{}

{} beschreibt ein Objekt, das keine eigenen Mitglieder hat, was bedeutet, dass TypeScript sich beschwert, wenn Sie versuchen, auf seine Eigenschaftsmitglieder zuzugreifen:

The Differences Between

Aus dem obigen Codebeispiel können wir ersehen, dass {} und Object (in Großbuchstaben) dieselben Funktionen haben. Das heißt, es kann nur auf die gemeinsamen Eigenschaften zugreifen (auch wenn die JavaScript-Codelogik korrekt ist), alle boxbaren Objekte können ihm zugewiesen werden usw.

Das liegt daran, dass der Typ {} über die Prototypenkette auf diese allgemeinen Eigenschaften zugreifen kann und auch keine eigenen Eigenschaften hat. Es verhält sich also genauso wie der Typ „Object“ (in Großbuchstaben). Aber sie vertreten unterschiedliche Konzepte.

Objekt (Kleinbuchstaben)

Objekt (in Kleinbuchstaben) bezeichnet jeden nicht-primitiven Typ, der im Code wie folgt ausgedrückt wird:

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

type NonPrimitiveType = object;

Das bedeutet, dass ihm nicht alle nicht-primitiven Typen zuweisbar sind und umgekehrt.

The Differences Between

Snack: Aufnahme

Im Quellcode vieler gängiger Bibliotheken sehen wir möglicherweise Record, um nicht-primitive Typen darzustellen. Es hat die gleiche Wirkung wie Objekt (in Kleinbuchstaben geschrieben), ist jedoch semantischer.


Wenn Sie meine Inhalte hilfreich finden, erwägen Sie bitte ein Abonnement. Ich versende jeden Sonntag einen _ wöchentlichen Newsletter _ mit den neuesten Updates zur Webentwicklung. Danke für deine Unterstützung!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/zacharylee/the-differences-between-object-and-object-in-typescript-f6f?1 Bei Verstößen wenden Sie sich zum Löschen bitte an [email protected] Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3