۳۰ آذر ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

TypeScript نقطه درد باریک شدن نوع را تسکین می دهد

TypeScript 5.4 که اکنون در یک کاندید انتشار موجود است، اصلاحات نوع را در بسته شدن تابع پس از آخرین تخصیص حفظ می کند.

TypeScript 5.4 که اکنون در یک کاندید انتشار موجود است، اصلاحات نوع را در بسته شدن تابع پس از آخرین تخصیص حفظ می کند.

TypeScript 5.4، یک به‌روزرسانی برنامه‌ریزی‌شده برای نوع جاوا اسکریپت قوی از مایکروسافت، به مرحله نامزد انتشار رسیده است. قابلیت‌های جدید در نسخه ۵.۴ شامل باریک شدن محفوظ در بسته‌های تابع ایجاد شده پس از آخرین تخصیص و یک نوع NoInfer برای جلوگیری از استنتاج به انواع معتبر اما ناخواسته است.

نامزد انتشار در ۲۲ فوریه منتشر شد، پس از انتشار بتا از ۲۹ ژانویه. انتشار نهایی در ۵ مارس انتظار می‌رود. TypeScript 5.4 از طریق NuGet یا NPM. در NPM از دستور زیر استفاده کنید:

npm install -D typescript@rc

از زمان انتشار بتا، یادداشت‌های انتشار به‌روزرسانی شده‌اند تا تغییرات رفتاری قابل توجه از جمله محدودیت‌های مربوط به قابلیت‌های enum، بهبود رفتار نوع نگاشت شده، و محدودیت در نام‌گذاری اعضای enum.

مایکروسافت با بیان جزئیات بهبود باریک‌سازی نوع، گفت که یک نقطه درد مشترک در TypeScript این است که انواع باریک‌شده همیشه در بسته‌های تابع حفظ نمی‌شوند. در TypeScript 5.4، زمانی که پارامترها و متغیرهای let در توابع غیر hoisted استفاده می‌شوند، بررسی‌کننده نوع آخرین نقطه انتساب را جستجو می‌کند. اگر یکی پیدا شد، TypeScript می تواند از خارج از تابع حاوی محدود شود.

Deno 1.30 از ماژول های داخلی Node.js پشتیبانی می کند

TypeScript 5.4 همچنین یک نوع ابزار NoInfer را معرفی می کند. احاطه کردن یک نوع در NoInfer<…> سیگنالی به TypeScript می دهد تا با انواع داخلی مطابقت داشته باشد تا نامزدهای استنتاج نوع را پیدا کند. نوع ابزار به مشکلی می پردازد که در آن TypeScript می تواند آرگومان های نوع را از هر چیزی که ارسال می شود استنتاج کند. اما همیشه مشخص نیست که بهترین نوع برای استنباط چیست، که TypeScript را به رد تماس های معتبر و انجام اشتباهات دیگر می کشاند.

بهبودهای دیگر در TypeScript 5.4:

  • TypeScript با دقت بیشتری بررسی می‌کند که آیا رشته‌ها قابل تخصیص به شکاف‌های نگهدارنده یک نوع رشته الگو هستند یا خیر.
  • محدودیت‌های قابلیت انتساب جدید برای enums معرفی شده‌اند. قبلاً، وقتی دو enum نام‌های یکسان و نام‌های اعضای enum یکسان داشتند، سازگار در نظر گرفته می‌شدند، اما TypeScript بی‌صدا به آنها اجازه می‌داد مقادیر متفاوتی داشته باشند. TypeScript 5.4 نیاز دارد که مقادیر یکسان باشند (در صورت شناخته شدن). همچنین محدودیت‌های جدیدی برای زمانی که یکی از اعضای enum دارای مقدار مشخص استاتیکی نباشد، وجود دارد. و TypeScript دیگر به enum ها اجازه نمی دهد از نام های Infinity، -Infinity، یا NaN استفاده کنند.
  • اعلامیه‌ها برای روش‌های ثابت groupBy و Map.groupBy جدید جاوا اسکریپت اضافه می‌شوند. Object.groupBy یک قابل تکرار و یک تابع می گیرد که تصمیم می گیرد هر عنصر در کدام گروه قرار گیرد. تابع باید برای هر گروه مجزا یک کلید ایجاد کند و Object.groupBy از آن استفاده می کند. کلید برای ایجاد یک شی که در آن هر کلید به آرایه ای حاوی عنصر اصلی نگاشت می شود. Map.groupBy مشابه است، اما به جای یک شیء ساده، نقشه تولید می کند.
  • پشتیبانی برای تماس های require( ) در --moduleResolution bundler و --module save اضافه شده است.
  • ویژگی‌های وارداتی و ادعاها اکنون با نوع ImportAttributes جهانی بررسی می‌شوند. این بدان معناست که زمان اجرا اکنون می تواند با دقت بیشتری ویژگی های واردات را توصیف کند.
  • رفع سریع به شما امکان می دهد یک پارامتر جدید به توابع فراخوانی شده با آرگومان های بسیار زیاد اضافه کنید.
  • TypeScript اکنون تقاطع ها با متغیرهای نوع و اولیه را به شدت کاهش می دهد، بسته به اینکه محدودیت متغیر نوع با این موارد اولیه چگونه همپوشانی دارد.
  • منسوخ شده از TypeScript 5.0 مانند target: ES3 کد، NoImplcitUseStrict، charset و خارج. TypeScript 5.4 احتمالاً آخرین نسخه ای خواهد بود که در آن لیست منسوخ شدن ها به طور معمول به کار خود ادامه می دهد.

TypeScript 5.4 از نسخه قبلی TypeScript 5.3 پیروی می کند که در نوامبر ۲۰۲۳ منتشر شد و دارای ویژگی های وارداتی برای ماژول های ECMAScript است.