ホームページ  >  記事  >  ウェブフロントエンド  >  TypeScript の &#Object&#、&#{}&#、および &#object&# の違い

TypeScript の &#Object&#、&#{}&#、および &#object&# の違い

王林
王林オリジナル
2024-07-24 15:52:301144ブラウズ

TypeScript でオブジェクト タイプを定義する場合、「Object」、「{}」、「object」などの簡潔なオプションがいくつかあります。それらの違いは何ですか?

オブジェクト (大文字)

オブジェクト (大文字) は、すべての JavaScipt オブジェクトに共通のプロパティを説明します。これは、TypeScript ライブラリに付属する lib.es5.d.ts ファイルで定義されています。

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 が表示される場合があります。非プリミティブ型を表すため。 object (小文字) と同じ効果がありますが、よりセマンティックです。


私のコンテンツが役立つと思われる場合は、 購読をご検討ください。最新の Web 開発更新情報を含む _ 毎週日曜日 _ ニュースレターを送信します。ご支援ありがとうございます!

以上がTypeScript の &#Object&#、&#{}&#、および &#object&# の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:TypeScript の概要次の記事:TypeScript の概要