مایکروسافت نسخهٔ 7.0 تایپ‌اسکریپت را منتشر کرد

نسخهٔ 7.0 تایپ‌اسکریپت منتشر شد. مهم‌ترین تغییر، معرفی کامپایلر بومی نوشته‌شده با زبان گو است که تیم توسعه گزارش می‌دهد در ساخت‌های کامل معمولاً بین 8x تا 12x سرعت افزوده می‌شود.

نصب و مسیر پیاده‌سازی

با انتشار 7.0، بیلدهای شبانه دوباره تحت بستهٔ استاندارد typescript روی تگ next قرار می‌گیرند و دستور معمول نصب برای استفاده از باینری جدید tsc همان است:

npm install -D typescript

بنچمارک‌ها و تاثیر روی پروژه‌های واقعی

مایکروسافت زمان‌های ساخت را روی چند کدبیس واقعی منتشر کرده که نشان‌دهندهٔ بهبود قابل‌توجه است. نمونه‌های شاخص:

  • VS Code: از 125.7s به 10.6s (بهبود ~11.9x)
  • Sentry: از 139.8s به 15.7s (بهبود ~8.9x)
  • Bluesky: از 24.3s به 2.8s (بهبود ~8.7x)
  • Playwright: از 12.8s به 1.47s (بهبود ~8.7x)
  • Tldraw: از 11.2s به 1.46s (بهبود ~7.7x)

مصرف حافظهٔ کلی در برخی نمونه‌ها حدود 18% کاهش یافته و پاسخگویی ادیتورها نیز به‌خاطر استفاده از Language Server Protocol و چندرشته‌ای شدن ابزار، محسوس‌تر شده است؛ برای مثال باز کردن فایلی با خطا در کدبیس VS Code از حدود 17.5s به کمتر از 1.3s رسیده است.

گزارش تیم‌ها و تجربهٔ CI

تیم‌هایی که نسخه‌های آزمایشی را به‌کار برده‌اند گزارش‌های مشابهی ارائه کرده‌اند: مهندسان Slack کاهش زمان تایپ‌چک در CI را از ~7.5 دقیقه به 1.25 دقیقه گزارش داده‌اند و Vanta نیز کاهش قابل‌توجهی در زمان‌ها مشاهده کرده است. موازی‌سازی در پیاده‌سازی جدید با فلگ‌های قابل تنظیم ارائه شده است:

  • --checkers و --builders برای تنظیم موازی‌سازی
  • --singleThreaded برای محیط‌های با منابع محدود
نمایشگر بنچمارک‌های TypeScript 7.0 در محیط توسعه

سازگاری و مسیر مهاجرت

تیم تایپ‌اسکریپت مسیر هم‌زمان (side-by-side) را برای مهاجرت در نظر گرفته است. بستهٔ سازگاری @typescript/typescript6 یک باینری tsc6 فراهم می‌کند و API نسخهٔ 6.0 را بازصادرات می‌کند تا ابزارهای فعلی بدون تغییر عمده کار کنند. این راهکار برای پروژه‌هایی که هنوز به APIهای قدیمی وابسته‌اند ضروری است.

محدودیت‌های فعلی و برنامهٔ آینده

در حال حاضر نسخهٔ 7.0 API برنامه‌نویسی (programmatic API) پایدار ندارد و تیم انتظار دارد این API در نسخهٔ 7.1 منتشر شود. تا ارائهٔ نسخهٔ پایدار، ابزارهایی مانند typescript-eslint و برخی افزونه‌های فریم‌ورک‌ها (Vue، Svelte، Astro، MDX، Angular) قادر به استفادهٔ کامل از پورت بومی نخواهند بود. انتشارها به‌صورت دوره‌ای هر 3 تا 4 ماه ادامه می‌یابد و اولویت نسخهٔ 7.1 فراهم‌سازی API برای اکوسیستم است.

اهمیت فنی تغییر

ابزارهایی مانند esbuild، swc و Biome سرعت بالایی ارائه می‌دهند اما بررسی نوع‌ها را یا کنار می‌گذارند یا ساده می‌کنند. TypeScript 7.0 توانسته سرعت را تا حد زیادی افزایش دهد در حالی که بررسی کامل نوع‌ها را حفظ می‌کند، و این موضوع آن را برای پروژه‌های بزرگ‌مقیاس جذاب می‌سازد.

نکات عملی برای تیم‌ها

  • قبل از مهاجرت به 7.0، سازگاری با نسخهٔ 6.0 را بررسی کنید؛ برخی موارد منسوخ‌شده در 7.0 به خطای سخت تبدیل شده‌اند.
  • برای پروژه‌هایی که به loaderهای webpack وابسته‌اند، تا انتشار API پایدار در 7.1 یا استفاده از بستهٔ سازگاری صبر کنید.
  • فلگ‌های موازی‌سازی را بر اساس منابع CI و محیط توسعهٔ محلی تنظیم کنید تا بهترین بهره‌وری حاصل شود.

تایپ‌اسکریپت یک پروژهٔ متن‌باز است که توسط مایکروسافت توسعه می‌یابد و تحت مجوز Apache 2.0 منتشر می‌شود. جزئیات فنی و فهرست تغییرات در مخزن رسمی در گیت‌هاب تایپ‌اسکریپت قابل‌پیگیری است.

پیش‌بینی

با اضافه‌شدن API برنامه‌نویسی و رشد پشتیبانی پلاگین‌ها در نسخه‌های بعدی، انتظار می‌رود پذیرش نسخهٔ بومی تسریع شود و زمان‌های توسعه و CI در پروژه‌های بزرگ به‌طور محسوس کاهش یابد. تیم‌هایی که به زمان ساخت حساس‌اند بهتر است از هم‌اکنون برنامهٔ تست و مهاجرت را طراحی کنند.