«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Различия между &#Object&#, &#{}&# и &#object&# в TypeScript

Различия между &#Object&#, &#{}&# и &#object&# в TypeScript

Опубликовано 30 июля 2024 г.
Просматривать:824

В TypeScript, когда мы хотим определить тип объекта, есть несколько кратких опций, таких как «Объект», «{}» и «объект». В чем разница между ними?

Объект (с заглавными буквами)

Объект (заглавными буквами) описывает свойства, общие для всех объектов JavaScipt. Он определен в файле lib.es5.d.ts, который входит в состав библиотеки TypeScript.

The Differences Between

Как видите, он включает в себя некоторые общие свойства, такие как toString(), valueOf() и т. д.

Потому что он подчеркивает только те свойства, которые являются общими для объектов JavaScript. Таким образом, вы можете назначать ему коробчатые объекты, такие как строка, логическое значение, число, bigint, символ, но не наоборот.

The Differences Between

{}

{} описывает объект, который не имеет собственных членов, а это означает, что TypeScript будет жаловаться, если вы попытаетесь получить доступ к членам его свойств:

The Differences Between

Из приведенного выше примера кода мы видим, что {} и Object (в верхнем регистре) имеют одинаковые функции. То есть он может получить доступ только к тем свойствам, которые являются общими (даже если логика кода JavaScript правильна), ему можно назначить все коробочные объекты и т.д.

Это связано с тем, что тип {} может получить доступ к этим общим свойствам через цепочку прототипов, а также не имеет собственных свойств. Таким образом, он ведет себя так же, как и тип Object (в верхнем регистре). Но они представляют собой разные концепции.

объект (строчными буквами)

объект (строчными буквами) означает любой непримитивный тип, который выражается в следующем коде:

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

type NonPrimitiveType = object;

Это означает, что ему не могут быть присвоены все непримитивные типы, и наоборот.

The Differences Between

Перекус: Запись

В исходном коде многих распространенных библиотек мы можем видеть Record для представления непримитивных типов. Он имеет тот же эффект, что и объект (в нижнем регистре), но более семантический.


Если мой контент вам полезен, пожалуйста, рассмотрите возможность подписки. Я отправляю _ еженедельный информационный бюллетень каждое воскресенье _ с последними обновлениями веб-разработки. Спасибо за вашу поддержку!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/zacharylee/the-differences-between-object-and-object-in-typescript-f6f?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить это
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3