Maison  >  Article  >  interface Web  >  Les différences entre &#Object&#, &#{}&# et &#object&# dans TypeScript

Les différences entre &#Object&#, &#{}&# et &#object&# dans TypeScript

王林
王林original
2024-07-24 15:52:301312parcourir

Dans TypeScript, lorsque nous voulons définir un type d'objet, il existe plusieurs options concises telles que 'Object', '{}' et 'object'. Quelles sont les différences entre eux ?

Objet (en majuscule)

Object (majuscules) décrit les propriétés communes à tous les objets JavaScipt. Il est défini dans le fichier lib.es5.d.ts fourni avec la bibliothèque TypeScript.

The Differences Between

Comme vous pouvez le voir, il inclut certaines propriétés courantes telles que toString(), valueOf(), etc.

Parce qu'il met l'accent uniquement sur les propriétés communes aux objets JavaScript. Vous pouvez donc lui attribuer des objets boxables comme une chaîne, un booléen, un nombre, un bigint, un symbole, mais pas l'inverse.

The Differences Between

{}

{} décrit un objet qui n'a pas de membres propres, ce qui signifie que TypeScript se plaindra si vous essayez d'accéder à ses membres de propriété :

The Differences Between

Dans l'exemple de code ci-dessus, nous pouvons voir que {} et Object (en majuscules) ont les mêmes fonctionnalités. Autrement dit, il ne peut accéder qu'aux propriétés communes (même si la logique du code JavaScript est correcte), tous les objets boxables peuvent lui être attribués, etc.

Cela est dû au fait que le type {} peut accéder à ces propriétés communes via la chaîne de prototypes et qu'il n'a pas non plus de propriétés propres. Il se comporte donc de la même manière que le type Object (majuscule). Mais ils représentent des concepts différents.

objet (minuscule)

objet (minuscules) désigne tout type non primitif, exprimé dans un code comme celui-ci :

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

type NonPrimitiveType = object;

Cela signifie que tous les types non primitifs ne lui sont pas attribuables, et vice versa.

The Differences Between

Collation : enregistrement

Dans le code source de nombreuses bibliothèques courantes, nous pouvons voir Record pour représenter des types non primitifs. Il a le même effet qu'un objet (en minuscule), mais il est plus sémantique.


Si vous trouvez mon contenu utile, veuillez envisagez de vous abonner. J'envoie une _ newsletter hebdomadaire tous les dimanches _ avec les dernières mises à jour du développement web. Merci pour votre soutien !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Introduction à TypeScriptArticle suivant:Introduction à TypeScript