اصل ماجرا

در تایپ‌اسکریپت، وقتی از اتحادهای جدا شده (Discriminated Unions) استفاده می‌کنید، می‌توانید با کمک نوع never و یک تابع کمکی، مطمئن شوید همه شاخه‌های یک switch را پوشش داده‌اید. اگر نوع جدیدی به اتحاد اضافه کنید و شاخه‌اش را اضافه نکنید، کامپایلر خطا می‌دهد. با این کار از بروز باگ‌هایی مثل خالی ماندن فیلد در فاکتور جلوگیری می‌شود.

چرا مهمه؟

پیشتر اضافه کردن یک نوع جدید به اتحاد بدون بروزرسانی همه switchها منجر به باگ‌های خاموش می‌شد که ممکن بود هفته‌ها بعد در خروجی مشخص شوند. با این تکنیک، کامپایلر دقیقاً همان خطی که باید بروزرسانی شود را نشان می‌دهد. برنامه‌نویسان تایپ‌اسکریپت و تیم‌هایی که کدهای بزرگ مدیریت می‌کنند بیشترین سود را می‌برند. خواننده باید این تکنیک را بداند چون هزینه پیاده‌سازی آن بسیار کم و مزیتش تضمین کامل بودن شاخه‌ها است.

به درد کی می‌خوره؟

• برنامه‌نویسان تایپ‌اسکریپت • مهندسان نرم‌افزار • معماران سیستم • تیم‌های DevOps • مدیران فنی

تو عمل چی کار کنیم؟

با پیاده‌سازی این الگو، توسعه‌دهندگان می‌توانند با اضافه کردن یک تابع assertNever و قرار دادن آن در شاخه پیش‌فرض switch، از کامل بودن همه شاخه‌ها اطمینان حاصل کنند. هنگام اضافه کردن نوع جدید، کامپایلر بلافاصله خطا می‌دهد و برنامه‌نویس مجبور به بروزرسانی می‌شود. این کار از باگ‌های پرهزینه در production جلوگیری می‌کند.

نظر Blue IT News

به عقیده سردبیر Blue IT، این تکنیک نمونه‌ای عالی از استفاده از قابلیت‌های تایپ‌اسکریپت برای ایمنی بیشتر است. اضافه کردن assertNever به switchها عادتی است که هر تیم تایپ‌اسکریپتی باید به آن عمل کند.

این صفحه یک خلاصه و تفسیر گردآوری‌شده بر اساس گزارش اصلی از Dev است. برای مطالعه متن کامل، به منبع اصلی مراجعه کنید.