مقایسه تایپ‌های Literal و Collective در تایپ اسکریپت

تایپ اسکریپت با افزودن تایپ‌های استاتیک، سطحی از type safety را در کدی که داریم ارائه می‌دهد. ما می‌توانیم تضمین کنیم که ویژگی‌ها یا توابع خاصی در کد ما وجود دارند و می‌توانیم آن‌ها را با تایپ‌های مورد نظر خود مطابقت دهیم. این کار می‌تواند میزان خطاهای سمت کلاینت را که ممکن است در وب‌سایت خود داشته باشیم بسیار کاهش دهد. برای مثال، از ایجاد خطاهای انسانی مانند فراخوانی توابع بر روی آبجکت‌های اشتباه جلوگیری می‌کند. تایپ اسکریپت این کار را با استفاده از تایپ‌های Collective و Literal انجام می‌دهد.

در این مقاله قصد داریم تا با تفاوت‌های بین تایپ‌های Collective و Literal در تایپ اسکریپت بیشتر آشنا شویم.

تایپ Collective در تایپ اسکریپت چیست؟

تایپ Collective مفهومی است که اکثر توسعه‌دهندگانی که با تایپ اسکریپت کار می‌کنند با آن آشنا هستند. مثلا:

const addOne = (numb: number) => num + 1;

مثال بالا از تایپ Collective استفاده می‌کند. تایپ‌های Collective ‌تایپ‌هایی مانند number، string، boolean و یا number[] هستند.

این تایپ‌ها شامل مقدار زیادی از متغیرهای موجود می‌باشند. به عنوان مثال، تایپ number می‌تواند شامل ۱، ۲، ۳، ۴، ۵ … و غیره باشد. اما تایپ اسکریپت تایپ‌های فرعی را در این تایپ Collective به ما ارائه می‌دهد که کمی سختگیرانه‌تر از حالت قبلی هستند.

تایپ Literal در تایپ اسکریپت چیست؟

ما همچنین می‌توانیم از مقادیر به عنوان تایپ‌ها استفاده کنیم، بنابراین let eleven: 11 = 11 یک کد تایپ اسکریپتی کاملاً معتبر است. این موضوع در ابتدا ممکن است کمی عجیب به نظر برسد اما بسیار پرکاربرد بوده و حتی می‌تواند خوانایی کدی که داریم را افزایش دهد.

با توجه به این موضوع، می‌توانیم شروع به ساخت تایپ‌هایی مانند تایپ enum کرده و به طور خاص تعریف کنیم که فقط می‌توانیم مقادیر خاصی را به آن تخصیص دهیم، به عنوان مثال:

type Door = 'open' | 'closed' | 'ajar'

اکنون می‌توانیم از تایپ Door در سرتاسر کد خود استفاده کنیم. تفاوتی که تایپ Door با تایپ string دارد این است که این تایپ مجموعه‌ای از مقادیر سخت‌گیرانه‌تر از آنچه تایپ string اجازه می‌داد تا از آن‌ها استفاده کنیم را شامل می‌شود.

اگر | در کد بالا مشخص نباشد، یک تایپ Union به حساب می‌آید و در اصل به معنای OR می‌باشد. در نتیجه هر تایپ که با Door مطابقت دارد فقط می‌تواند مقادیر open یا closed یا ajar را داشته باشد.

جمع‌بندی

تایپ‌های Literal زیرمجموعه‌ای از تایپ‌های Collective در تایپ اسکریپت هستند. یعنی می‌توانیم بگوییم که همه تایپ‌های Literal تایپ Collective هستند، اما همه تایپ‌های Collective تایپ Literal نمی‌باشند.

برای این که درک این موضوع ساده‌تر باشد می‌توانیم این مثال را در نظر بگیریم، که تایپ Literal 11 یک تایپ number است اما همه تایپ‌های number 11 نیستند.

در این مقاله سعی کردیم تا تفاوت‌های بین تایپ‌های Literal و Collective در تایپ اسکریپت را بررسی کنیم. در نهایت، توجه به این نکته لازم است اگر در کد خود نیاز به محدود کردن شدید تایپ‌ها داشتیم، توصیه می‌شود که از تایپ‌های Literal برای این منظور استفاده کنیم.

دیدگاه‌ها:

افزودن دیدگاه جدید