تایپاسکریپت ۷.۰ بتا: ۱۰ برابر سریعتر با Go
خلاصهٔ کاملتر
مایکروسافت اعلام کرد که تایپاسکریپت ۷.۰ بتا رسماً منتشر شده و این شاید بزرگترین تغییر معماری در تاریخ این زبانه. برخلاف آپدیتهای معمول، این بار کل پایه و اساس کامپایلر از TypeScript به زبان Go منتقل شده؛ نه بازنویسی از صفر، بلکه یه پورت دقیق و متدیک از همون کدبیس قبلی.
مهمترین چیزی که باید بدونی اینه که این نسخه جدید تقریباً ۱۰ برابر از تایپاسکریپت ۶.۰ سریعتره. این سرعت از دو چیز میاد: اجرای کد native و پردازش موازی با حافظه مشترک. یعنی بهجای اینکه روی Node.js اجرا بشه، مستقیماً به عنوان یه باینری native روی سیستمعامل میدوه.
نکته مهم اینه که منطق تایپچکینگ دقیقاً همون چیزیه که توی نسخه ۶.۰ داشتیم. تیم مایکروسافت مطمئن شده که semantics یکساننه، پس نگران تغییرات breaking نباش. این نسخه روی تستسوییت یه دههای تایپاسکریپت آزمایش شده و توی کدبیسهای میلیونخطی داخل و خارج مایکروسافت به کار رفته.
شرکتهای بزرگی مثل Bloomberg، Figma، Notion، Slack، Vercel، Canva، Google و Linear از پیشنسخههای این کامپایلر استفاده کردن و بازخوردها خیلی مثبت بوده. خیلی از تیمها گزارش دادن که زمان بیلدشون به شکل چشمگیری کاهش پیدا کرده.
برای نصب این نسخه بتا، فعلاً باید از پکیج @typescript/native-preview استفاده کنی و بهجای tsc از دستور tsgo بهره ببری. در نسخه نهایی، پکیج همون typescript میشه و entry point هم برمیگرده به tsc. برای ویرایشگر VS Code هم یه اکستنشن جداگانه به اسم TypeScript Native Preview وجود داره که همین بهبود عملکرد رو توی محیط ادیتور بهت میده.
یکی از ویژگیهای کلیدی این نسخه، parallelization پیشرفتهست. تایپاسکریپت ۷.۰ مراحل مختلف بیلد از جمله parsing، type-checking و emit رو بهصورت موازی انجام میده. برای کنترل این موازیسازی دو فلگ جدید داری: --checkers که تعداد worker های تایپچکینگ رو تنظیم میکنه (پیشفرض ۴ تاست) و --builders که تعداد پروژههایی که همزمان بیلد میشن رو مشخص میکنه. این قابلیت بهخصوص برای monorepoها خیلی مفیده.
اگه بخوای تایپاسکریپت ۶ و ۷ رو کنار هم داشته باشی، مایکروسافت یه پکیج سازگاری به اسم @typescript/typescript6 منتشر کرده که entry point اون tsc6 هست و تعارضی با نسخه ۷ نداره. همچنین یه فلگ --singleThreaded هم اضافه شده که برای دیباگ یا محیطهایی با منابع محدود مفیده. برنامهریزی شده که API برنامهنویسی پایدار از نسخه ۷.۱ به بعد ارائه بشه.
نکات کلیدی:
- تایپاسکریپت ۷.۰ بتا کامپایلر رو از TypeScript به Go پورت کرده و حدود ۱۰ برابر سریعتره
- منطق تایپچکینگ دقیقاً مثل نسخه ۶.۰ هست، یعنی سازگاری کامل
- فلگ --checkers برای کنترل تعداد worker های موازی تایپچکینگ
- فلگ --builders برای بیلد موازی چندین پروژه همزمان (مناسب monorepo)
- فعلاً با پکیج @typescript/native-preview و دستور tsgo در دسترسه
- اکستنشن VS Code برای تجربه ادیتور با همین سرعت موجوده
- API برنامهنویسی پایدار تا نسخه ۷.۱ ارائه نمیشه
- پکیج @typescript/typescript6 برای اجرای همزمان نسخه ۶ و ۷ در کنار هم




