Wenn wir in TypeScript einen Objekttyp definieren möchten, gibt es mehrere prägnante Optionen wie „Objekt“, „{}“ und „Objekt“. Was sind die Unterschiede zwischen ihnen?
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.
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 Zeichenfolge, Boolescher Wert, Zahl, Bigint oder Symbol zuweisen, aber nicht umgekehrt.
{} beschreibt ein Objekt, das keine eigenen Mitglieder hat, was bedeutet, dass TypeScript sich beschwert, wenn Sie versuchen, auf seine Eigenschaftsmitglieder zuzugreifen:
Aus dem Codebeispiel oben können wir ersehen, dass {} und Object (in Großbuchstaben) die gleichen 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 gemeinsamen 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 (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 zuordenbar sind und umgekehrt.
Im Quellcode vieler gängiger Bibliotheken sehen wir möglicherweise Record
Wenn Sie meine Inhalte hilfreich finden, erwägen Sie bitte ein Abonnement. Ich verschicke jeden Sonntag einen _ wöchentlichen Newsletter _ mit den neuesten Updates zur Webentwicklung. Vielen Dank für Ihre Unterstützung!
Das obige ist der detaillierte Inhalt vonDie Unterschiede zwischen „Object', „{}' und „Object' in TypeScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!