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 ?
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.
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.
{} 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é :
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 (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.
Dans le code source de nombreuses bibliothèques courantes, nous pouvons voir Record
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!