برنامه نویسی

تفاوت بین «شیء»، «{}» و «ابجکت» در TypeScript

Summarize this content to 400 words in Persian Lang
در TypeScript، زمانی که می خواهیم یک نوع شی را تعریف کنیم، چندین گزینه مختصر مانند “Object”، “{}” و “object” وجود دارد. چه تفاوت هایی بین آنها وجود دارد؟

شی (با حروف بزرگ)

Object (با حروف بزرگ) ویژگی های مشترک برای تمام اشیاء جاوا اسکپت را توصیف می کند. در تعریف شده است lib.es5.d.ts فایلی که با کتابخانه TypeScript همراه است.

همانطور که می بینید، شامل برخی از ویژگی های رایج مانند toString()، valueOf()، و غیره.

زیرا فقط بر ویژگی هایی تأکید می کند که در اشیاء جاوا اسکریپت مشترک هستند. بنابراین شما می توانید اشیاء جعبه پذیر مانند string، boolean، number، bigint، symbol به آن، اما نه برعکس.

{}

{} شی ای را توصیف می کند که هیچ عضوی از خود ندارد، به این معنی که اگر بخواهید به اعضای ویژگی آن دسترسی داشته باشید، TypeScript شکایت خواهد کرد:

از مثال کد بالا، ما می توانیم آن را ببینیم {} و Object (با حروف بزرگ) همین ویژگی ها را دارند. یعنی فقط می‌تواند به ویژگی‌هایی دسترسی داشته باشد که رایج هستند (حتی اگر منطق کد جاوا اسکریپت درست باشد)، همه اشیاء جعبه‌پذیر را می‌توان به آن اختصاص داد و غیره.

این به این دلیل است که {} type می‌تواند از طریق زنجیره نمونه اولیه به آن ویژگی‌های رایج دسترسی پیدا کند، و همچنین هیچ ویژگی خاصی ندارد. بنابراین مانند آن رفتار می کند Object نوع (با حروف بزرگ). اما آنها مفاهیم متفاوتی را نشان می دهند.

شی (با حروف کوچک)

آبجکت (کوچک) به معنای هر نوع غیر ابتدایی است که در کدهای زیر بیان می شود:

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

type NonPrimitiveType = object;

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بدان معنی است که همه انواع غیر اولیه قابل انتساب به آن نیستند و بالعکس.

میان وعده: ضبط کنید

در کد منبع بسیاری از کتابخانه های رایج، ممکن است مشاهده کنیم Record برای نشان دادن انواع غیر ابتدایی. این همان اثر شی (حروف کوچک) است، اما بیشتر معنایی است.

اگر مطالب من را مفید می دانید، لطفا اشتراک را در نظر بگیرید. من می فرستم _ خبرنامه هفتگی هر یکشنبه _ با آخرین به روز رسانی های توسعه وب از حمایت شما متشکرم!

در TypeScript، زمانی که می خواهیم یک نوع شی را تعریف کنیم، چندین گزینه مختصر مانند “Object”، “{}” و “object” وجود دارد. چه تفاوت هایی بین آنها وجود دارد؟

شی (با حروف بزرگ)

Object (با حروف بزرگ) ویژگی های مشترک برای تمام اشیاء جاوا اسکپت را توصیف می کند. در تعریف شده است lib.es5.d.ts فایلی که با کتابخانه TypeScript همراه است.

https%253A%252F%252Fsubstack post media.s3.amazonaws.com%252Fpublic%252Fimages%252F502bd58d 5056 43bb 949a

همانطور که می بینید، شامل برخی از ویژگی های رایج مانند toString()، valueOf()، و غیره.

زیرا فقط بر ویژگی هایی تأکید می کند که در اشیاء جاوا اسکریپت مشترک هستند. بنابراین شما می توانید اشیاء جعبه پذیر مانند string، boolean، number، bigint، symbol به آن، اما نه برعکس.

https%253A%252F%252Fsubstack post media.s3.amazonaws.com%252Fpublic%252Fimages%252F35260e1a c0a0 4e17 ae27

{}

{} شی ای را توصیف می کند که هیچ عضوی از خود ندارد، به این معنی که اگر بخواهید به اعضای ویژگی آن دسترسی داشته باشید، TypeScript شکایت خواهد کرد:

https%253A%252F%252Fsubstack post media.s3.amazonaws.com%252Fpublic%252Fimages%252Fbfe9dc4d c569 4754 9da2

از مثال کد بالا، ما می توانیم آن را ببینیم {} و Object (با حروف بزرگ) همین ویژگی ها را دارند. یعنی فقط می‌تواند به ویژگی‌هایی دسترسی داشته باشد که رایج هستند (حتی اگر منطق کد جاوا اسکریپت درست باشد)، همه اشیاء جعبه‌پذیر را می‌توان به آن اختصاص داد و غیره.

این به این دلیل است که {} type می‌تواند از طریق زنجیره نمونه اولیه به آن ویژگی‌های رایج دسترسی پیدا کند، و همچنین هیچ ویژگی خاصی ندارد. بنابراین مانند آن رفتار می کند Object نوع (با حروف بزرگ). اما آنها مفاهیم متفاوتی را نشان می دهند.

شی (با حروف کوچک)

آبجکت (کوچک) به معنای هر نوع غیر ابتدایی است که در کدهای زیر بیان می شود:

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

type NonPrimitiveType = object;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بدان معنی است که همه انواع غیر اولیه قابل انتساب به آن نیستند و بالعکس.

https%253A%252F%252Fsubstack post media.s3.amazonaws.com%252Fpublic%252Fimages%252F755f5846 0a2c 45d2 a541

میان وعده: ضبط کنید

در کد منبع بسیاری از کتابخانه های رایج، ممکن است مشاهده کنیم Record برای نشان دادن انواع غیر ابتدایی. این همان اثر شی (حروف کوچک) است، اما بیشتر معنایی است.


اگر مطالب من را مفید می دانید، لطفا اشتراک را در نظر بگیرید. من می فرستم _ خبرنامه هفتگی هر یکشنبه _ با آخرین به روز رسانی های توسعه وب از حمایت شما متشکرم!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا