تایپاسکریپت ۵.۹ و Node.js 24 LTS؛ مدرنسازی توسعهٔ سمت سرور
5 تیر 1405اکوسیستم جاوااسکریپت در سال ۲۰۲۵ دو بهروزرسانی مهم را تجربه کرد: تایپاسکریپت ۵.۹ در اول اوت ۲۰۲۵ و Node.js نسخهٔ ۲۴ که در ۶ مه ۲۰۲۵ منتشر و در اکتبر به وضعیت LTS ارتقا یافت. این دو نسخه روی هم، تجربهٔ توسعهٔ بکاند و فولاستک با جاوااسکریپت و تایپاسکریپت را مدرنتر و سریعتر کردهاند. در این مقاله مهمترین تغییرات هر دو را بررسی میکنیم.
تایپاسکریپت ۵.۹: ایمپورت با تأخیر
شاخصترین قابلیت TypeScript 5.9 پشتیبانی از پیشنهاد deferred module evaluation در ECMAScript با سینتکس جدید import defer است. این قابلیت اجازه میدهد یک ماژول را ایمپورت کنید بدون آنکه بلافاصله اجرا شود؛ ماژول تنها زمانی ارزیابی میشود که برای نخستینبار به یکی از اعضای آن دسترسی پیدا کنید. این موضوع برای بهبود زمان راهاندازی اپلیکیشن و بارگذاری تنبل (lazy) ماژولهای سنگین بسیار کاربردی است.
import defer * as heavyModule from "./heavy-module.js";
function onDemand() {
// ماژول دقیقاً در همین لحظه ارزیابی میشود
return heavyModule.compute();
}
گزینهٔ پایدار node20
تایپاسکریپت ۵.۹ یک گزینهٔ پایدار به نام node20 برای module و target معرفی میکند که رفتار Node.js نسخهٔ ۲۰ را مدلسازی میکند و قرار است در آینده تغییر رفتاری نداشته باشد. این گزینه برای پروژههایی که میخواهند پیکربندی پایدار و قابلپیشبینی داشته باشند انتخاب مناسبی است.
// tsconfig.json
{
"compilerOptions": {
"module": "node20",
"target": "node20"
}
}
بهبود تجربهٔ توسعه در ویرایشگر
سرور زبان (language server) تایپاسکریپت اکنون از طول قابلتنظیم برای hover پشتیبانی میکند. در VS Code میتوانید این مقدار را با تنظیم js/ts.hover.maximumLength تغییر دهید و طول پیشفرض نمایش اطلاعات هنگام نگهداشتن نشانگر روی نمادها نیز بهطور قابلتوجهی افزایش یافته است. این تغییر برای خواندن تایپهای پیچیده و طولانی بسیار مفید است. یادآوری میشود که در نسخهٔ ۵.۸ نیز گزینهٔ --erasableSyntaxOnly اضافه شده بود که تضمین میکند فقط سینتکس تایپاسکریپتی بدون اثر زمان اجرا حذف شود؛ قابلیتی که با اجرای مستقیم فایلهای TypeScript در Node.js هماهنگ است.
Node.js 24: ارتقای موتور V8
نسخهٔ ۲۴ یک انتشار بزرگ است که موتور V8 را به نسخهٔ 13.6 ارتقا میدهد. این بهروزرسانی قابلیتهای جدیدی مثل Float16Array و متد RegExp.escape() را بههمراه میآورد. متد دومی بهویژه کاربردی است، چون نوشتن دستی escape برای کاراکترهای خاص در عبارات باقاعده همواره مستعد خطا بود.
const userInput = "a.b*c";
const safe = RegExp.escape(userInput);
const re = new RegExp(safe); // بدون نگرانی از کاراکترهای ویژه
مدل مجوزها (Permission Model)
مدل مجوزها که از Node.js 20 بهصورت آزمایشی معرفی شده بود، در نسخهٔ ۲۴ پایدارتر و سادهتر شده است. بهجای پرچم طولانی --experimental-permission اکنون میتوانید از پرچم کوتاهتر و تمیزتر --permission استفاده کنید. این مدل امکان محدودسازی دسترسی اپلیکیشن به فایلسیستم، شبکه و فرایندهای فرزند را فراهم میکند که برای امنیت سرویسهای پروداکشن اهمیت زیادی دارد.
node --permission --allow-fs-read=/app/data server.js
بهبودهای async و HTTP
در Node.js 24، کلاس AsyncLocalStorage بهصورت پیشفرض از AsyncContextFrame استفاده میکند که ردیابی context در عملیاتهای async را کارآمدتر و قابلاعتمادتر میکند؛ نکتهای که برای سیستمهای پیچیده و میدلورهای ردیابی request اهمیت دارد. همچنین کتابخانهٔ Undici به نسخهٔ اصلی ۷ ارتقا یافته که کارایی بهتر و پشتیبانی از قابلیتهای HTTP بیشتری بههمراه دارد. این نسخه با npm 11.0.0 عرضه میشود که عملکرد، امنیت و سازگاری با پکیجهای مدرن را بهبود میدهد. Node.js 24 تا آوریل ۲۰۲۸ پشتیبانی میشود.
جمعبندی
تایپاسکریپت ۵.۹ و Node.js 24 با هم یک پایهٔ مدرن برای توسعهٔ سمت سرور میسازند. import defer و گزینهٔ پایدار node20 در تایپاسکریپت، در کنار مدل مجوزهای سادهشده، ارتقای V8 و Undici 7 در Node.js، هم امنیت و هم کارایی را بالا میبرند. برای کسانی که در حال یادگیری Node.js و تایپاسکریپت هستند، شروع کار روی Node.js 24 LTS انتخابی مطمئن است؛ فقط پیش از ارتقای محیط پروداکشن، سازگاری وابستگیهای بومی (native) و ابزارهای build خود را بررسی کنید.