تفاوت بین «شیء»، «{}» و «ابجکت» در 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 همراه است.
همانطور که می بینید، شامل برخی از ویژگی های رایج مانند toString()
، valueOf()
، و غیره.
زیرا فقط بر ویژگی هایی تأکید می کند که در اشیاء جاوا اسکریپت مشترک هستند. بنابراین شما می توانید اشیاء جعبه پذیر مانند string
، boolean
، number
، bigint
، symbol
به آن، اما نه برعکس.
{}
{}
شی ای را توصیف می کند که هیچ عضوی از خود ندارد، به این معنی که اگر بخواهید به اعضای ویژگی آن دسترسی داشته باشید، TypeScript شکایت خواهد کرد:
از مثال کد بالا، ما می توانیم آن را ببینیم {}
و Object
(با حروف بزرگ) همین ویژگی ها را دارند. یعنی فقط میتواند به ویژگیهایی دسترسی داشته باشد که رایج هستند (حتی اگر منطق کد جاوا اسکریپت درست باشد)، همه اشیاء جعبهپذیر را میتوان به آن اختصاص داد و غیره.
این به این دلیل است که {}
type میتواند از طریق زنجیره نمونه اولیه به آن ویژگیهای رایج دسترسی پیدا کند، و همچنین هیچ ویژگی خاصی ندارد. بنابراین مانند آن رفتار می کند Object
نوع (با حروف بزرگ). اما آنها مفاهیم متفاوتی را نشان می دهند.
شی (با حروف کوچک)
آبجکت (کوچک) به معنای هر نوع غیر ابتدایی است که در کدهای زیر بیان می شود:
type PrimitiveType =
| undefined
| null
| string
| number
| boolean
| bigint
| symbol;
type NonPrimitiveType = object;
این بدان معنی است که همه انواع غیر اولیه قابل انتساب به آن نیستند و بالعکس.
میان وعده: ضبط کنید
در کد منبع بسیاری از کتابخانه های رایج، ممکن است مشاهده کنیم Record
برای نشان دادن انواع غیر ابتدایی. این همان اثر شی (حروف کوچک) است، اما بیشتر معنایی است.
اگر مطالب من را مفید می دانید، لطفا اشتراک را در نظر بگیرید. من می فرستم _ خبرنامه هفتگی هر یکشنبه _ با آخرین به روز رسانی های توسعه وب از حمایت شما متشکرم!