میدلور دوم تایپهای TypeScript ما را خراب کرد
یکی از توسعهدهندگان تجربهاش رو از مشکلی عجیب تعریف کرده: وقتی یک middleware دوم به پروژه TypeScript اضافه کرده، سیستم type checking کاملاً خراب شده. این مشکل به نحوه تعامل middlewareها با نوعهای جنریک در TypeScript مربوط میشه و نشوندهنده ضعفهایی در طراحی type system این زبانه.
چرا مهمه؟
چه چیزی تغییر کرده؟ یک باگ واقعی در نحوه عملکرد TypeScript با middlewareها لو رفته. چه کسانی تحت تأثیر قرار گرفتن؟ توسعهدهندگانی که با TypeScript و میانافزارهای وب (مثل Express، Hono یا Next.js) کار میکنن. چرا خواننده باید اهمیت بده؟ چون اگه پروژه TypeScript داری و از middleware استفاده میکنی، ممکنه خودت هم روزی با این مشکل مواجه بشی و اگه ازش خبر نداشته باشی، ساعتها وقتت رو هدر میدی.
به درد کی میخوره؟
توسعهدهندگان TypeScript توسعهدهندگان وب با فریمورکهایی مثل Express و Hono تیمهایی که از middleware stack استفاده میکنن بررسیکنندگان کد (code reviewers)
تو عمل چی کار کنیم؟
اگه پروژه TypeScript داری که از چند middleware استفاده میکنه، بهتره type definitionهای میانافزارها رو دقیقتر بررسی کنی. ممکنه بعضی middlewareها وقتی تنها کار کنن درست عمل کنن، ولی در کنار هم نوعها رو خراب کنن. قبل از اضافه کردن middleware جدید، اول تست type رو اجرا کن تا مطمئن بشی چیزی نشکسته.
نظر Blue IT News
این مشکل نشون میده که TypeScript هنوز در مدیریت جنریکهای تو در تو (nested generics) با محدودیتهایی دست و پنجه نرم میکنه. توسعهدهندهها نباید صرفاً به تایپ بودن کد اعتماد کنن و باید edge caseهای تعامل چند middleware رو هم تست کنن.