
وقتی توی تایپ اسکریپت یک آبجکت رو تعریف میکنین برای انتخاب تایپ اون آبجکت شما چندین انتخاب دارین مثل تایپ های Object
و object
و <strong>{}</strong>
اما خب تفاوتهای این تایپ ها چیه؟
بررسی انواع تایپ های آبجکت
بررسی تایپ object (با o کوچک)
این نوع تایپ، شامل تمام مقادیر non-primitive ها میشه. (Array, object, functions)
اگر نمیدونین non-primitive ها چیا هستن؟ باید عرض کنم که توی جاوا اسکریپت آرایهها، آبجکتها و فانکشن ها، non-primitive به حساب میان.
اگر میخواین بیشتر راجعبه دیتا تایپهای primitive و non-primitive بدونین این مقاله هم بهتون کمک میکنه
بریم توی کد تایپ object رو برای مقادیر non-primitive بررسی کنیم:

بررسی تایپ Object (با O بزرگ)
این نوع تایپ، عملکرد یا functionality تمام آبجکت ها (object) رو نشون میده مثلا متدهایی مثل ()toString
یا ()valueOf
و … رو توی خودش داره و همینطور شامل تایپ های بیشتری هم میشه بجز null
و undefined
و همچنین چون type-safe کمتری نسبت به تایپ object داره و جز موارد خاص استفاده از تایپ Object توصیه نمیشه.
چون ممکنه یکم گیج بشین که functionality آبجکت ها دیگه شامل چه چیزایی میشه بریم ساجست خود تایپ اسکریپت رو ببینیم که چی بهمون میده :

و همینطور گفتیم تایپ های بیشتری نسبت به object
رو ساپورت میکنه بجز null
و undefined
بریم توی کد ببینیم :

بررسی تایپ {}
این نوع تایپ هم دقیقا مثل تایپ object
عمل میکنه اما یک آبجکت خالی رو تعریف میکنه که هیچ property یا عضوی توی خودش نداره و اگر شما سعی کنین به property هاش دسترسی داشته باشین از طرف تایپ اسکریپت به خطا میخورین.
بریم توی کد بررسی کنیم بازم :

توی کد بالا ما سعی کردیم به property که age هست دسترسی داشته باشیم اما به خطا خوردیم که همچین چیزی توی تایپ {} تعریف نشده.
اما میتونین به تمام ویژگی هایی که توی تایپ Object
(با O بزرگ) دسترسی داشته باشیم
بریم اینم چک کنیم ببینیم :

خلاصه
- تایپ
object
برای نشون دادن مقادیر non-primitive ها استفاده میشه - تایپ
Object
عملکرد یا همون functionality که توی تمام object ها وجود دارن رو نشون میده - تایپ
{}
به یک آبجکت خالی اشاره میکنه که به صورت پیشفرض هیچ property نداره
دیدگاهتان را بنویسید