تایپاسکریپت ۷ بتا: بازنویسی با Go و سرعت ۱۰ برابری
خلاصهٔ کاملتر
تیم تایپاسکریپت در مایکروسافت یه خبر بزرگ داده: نسخه ۷ بتا آمادهست و این دفعه ماجرا فقط یه آپدیت معمولی نیست. در طول یه سال گذشته، تیم کل کدبیس تایپاسکریپت رو از TypeScript (که compile میشد به JavaScript) به زبان Go پورت کرده. این یعنی حالا کامپایلر با کد native اجرا میشه و میتونه از پردازش موازی واقعی استفاده کنه.
نتیجه این تغییر معماری چشمگیره: تایپاسکریپت ۷ تقریباً ۱۰ برابر از نسخه ۶ سریعتره. این عدد رو خود تیم مایکروسافت اعلام کرده و شرکتهایی که ماههاست با نسخههای آزمایشی کار میکردن هم همین تجربه رو داشتن؛ خیلیها گفتن بخش بزرگی از زمان buildشون کاهش پیدا کرده.
یه نکته مهم اینه که این نسخه از صفر نوشته نشده، بلکه بهصورت دقیق از روی پیادهسازی قبلی پورت شده. یعنی logic مربوط به type-checking دقیقاً همونیه که توی نسخه ۶ بود. پس نگرانی بابت تغییر رفتار کامپایلر یا ناسازگاری با پروژههای موجود نیست.
برای استفاده از بتا، باید پکیج @typescript/native-preview رو نصب کنی و بهجای دستور tsc از tsgo استفاده کنی. البته این فقط برای دوران بتاست؛ توی نسخه نهایی، پکیج همون typescript خواهد بود و دستور هم tsc میمونه. برای ویرایشگر هم یه اکستنشن مخصوص VS Code منتشر شده که تجربه editing خیلی روانتری میده.
یکی از قابلیتهای جالب نسخه ۷ پردازش موازیه. کارهایی مثل parsing و emit فایلها میتونن بهصورت کاملاً مستقل اجرا بشن، ولی type-checking پیچیدهتره چون فایلها به هم وابستهان. برای حل این مشکل، تایپاسکریپت ۷ یه سیستم worker طراحی کرده که هر worker دیدگاه مستقلی داره، ولی همیشه با همون ورودی، همون نتیجه رو تولید میکنه. تعداد این workerها با فلگ --checkers قابل تنظیمه و پیشفرضش ۴ تاست.
علاوه بر پردازش موازی درون یه پروژه، حالا میشه چندین پروژه رو همزمان build کرد. این قابلیت با فلگ --builders کنترل میشه و برای monorepoهایی با پروژههای زیاد خیلی مفیده. البته باید توجه کرد که ترکیب --checkers و --builders میتونه بهشدت مصرف CPU و حافظه رو بالا ببره، پس باید تنظیم درستی داشت.
برای تیمهایی که نمیخوان یهباره از نسخه ۶ به ۷ برن، یه پکیج سازگاری به اسم @typescript/typescript6 منتشر شده. این پکیج یه entry point جدید به اسم tsc6 داره، که میشه هر دو ورژن رو کنار هم داشت بدون تداخل. ابزارهایی مثل typescript-eslint که به typescript وابستهان، میتونن با npm aliases کنار ۷.۰ زندگی کنن.
شرکتهای بزرگی مثل Bloomberg، Canva، Figma، Google، Lattice، Linear، Miro، Notion، Slack، Vanta، Vercel و VoidZero ماههاست از نسخههای pre-release استفاده میکنن و فیدبکهاشون بسیار مثبت بوده. این نشون میده که این «بتا» خیلی نزدیک به production-ready هست و میشه همین الان ازش برای workflow روزانه و CI pipeline استفاده کرد.
نکات کلیدی:
- کامپایلر تایپاسکریپت ۷ از TypeScript/JS به Go بازنویسی شده
- سرعت build حدود ۱۰ برابر نسخه ۶ سریعتره
- رفتار type-checking دقیقاً همون نسخه ۶ هست، بدون ناسازگاری
- نصب از طریق پکیج @typescript/native-preview و دستور tsgo
- پشتیبانی از پردازش موازی با فلگهای --checkers و --builders
- اکستنشن VS Code برای تجربه editing بهتر منتشر شده
- پکیج @typescript/typescript6 برای اجرای همزمان نسخه ۶ و ۷ در دسترسه
- شرکتهای بزرگ مثل Figma، Slack و Google ماههاست ازش استفاده میکنن




