tsgolint نسخهٔ ۷؛ لینت نوعآگاه Oxlint پایدار شد
خلاصهٔ کاملتر
تیم Oxc نسخهٔ ۷ از tsgolint رو منتشر کرده؛ همون موتور لینت نوعآگاهی که زیر پوست Oxlint کار میکنه. این نسخه مستقیم روی TypeScript 7 ساخته شده و از نسخهٔ آلفا تا حالا ۱۶ قانون جدید اضافه کرده، طوری که پوشش قوانین نوعآگاه از ۴۳ به ۵۹ قانون از مجموع ۶۱ قانون typescript-eslint رسیده. بین اضافهشدهها اسمهای پرکاربردی مثل no-unnecessary-condition، prefer-nullish-coalescing، prefer-optional-chain و prefer-readonly دیده میشه.
چون tsgolint مستقیم روی TypeScript سواره، سازگاریش به یه نسخهٔ مشخص از TypeScript گره خورده و همین باعث شده شمارهگذاریش هم عوض بشه: تو v7.0.2000 بخش اول نسخهٔ TypeScript ـه و سه رقم آخر شمارهٔ وصلهٔ خود tsgolint. اگه لازم باشه روی همون نسخهٔ TypeScript وصلهٔ بعدی بیاد، میشه v7.0.2001 و با بهروزرسانی TypeScript، شمارهٔ وصله ریست میشه.
یکی از تغییرهای عملی این نسخه اینه که دیگه لازم نیست لینت نوعآگاه رو تو تکتک اسکریپتهای پکیج یا دستورهای CI دستی روشن کنی و میشه کنار بقیهٔ تنظیمات لینت تعریفش کرد:
import { defineConfig } from "oxlint";
export default defineConfig({
options: {
typeAware: true,
typeCheck: true,
},
});گزینهٔ typeAware قوانینی رو فعال میکنه که به اطلاعات نوع نیاز دارن و typeCheck علاوه بر اون خطاهای خود کامپایلر TypeScript رو هم گزارش میده؛ اگه فقط لینت میخوای، دومی رو نذار. هر دو گزینه فقط تو سطح ریشه معتبرن و فلگهای خط فرمان بهشون اولویت دارن. مزیت اجرای همزمانشون اینه که لینت و بررسی نوع یه program مشترک از TypeScript رو استفاده میکنن و کار تحلیل دوباره تکرار نمیشه.
روی سرعت هم دوباره کار شده. طبق آخرین بنچمارک تیم روی یه مک با تراشهٔ M4 Pro، tsgolint بین ۱۲ تا ۱۸ برابر سریعتر از ESLint بههمراه typescript-eslint بوده: مخزن VS Code از ۸۳٫۲ ثانیه به ۶٫۹۶ ثانیه، خود TypeScript از ۲۷٫۲ به ۱٫۹۴ ثانیه، TypeORM از ۱۳٫۲ به ۰٫۷۵ ثانیه و هستهٔ Vue از ۱۲٫۳ به ۰٫۹۵ ثانیه. کارهایی که این بهبود رو ساختن شامل موازی کردن کشف tsconfig، کش کردن خوندن فایلها، دستهای کردن تشخیصهای معنایی و مسیرهای میانبریه که وقتی نحو جواب رو میده، سراغ کوئری گرون از type checker نمیره.
دو چیز کوچیک ولی مفید دیگه هم اومده: امکان گزارش زمان اجرای هر قانون بهصورت جداگانه که کمک میکنه بفهمی وقت لینت کجا میره و کدوم قانون گرونه، و کم شدن حجم باینری با حذف اطلاعات دیباگ — روی Darwin ARM64 حجم نصبشده حدود ۲۶٫۶ درصد و حجم فشردهٔ دانلود از npm حدود ۴۴٫۹ درصد کم شده، بدون تغییر تو نتیجهٔ لینت.
نکات کلیدی:
- پوشش ۵۹ قانون از ۶۱ قانون نوعآگاه typescript-eslint، با ۱۶ قانون جدید از زمان آلفا
- ساختهشده روی TypeScript 7 با شمارهگذاری نسخهٔ گرهخورده به همون نسخه
- فعالسازی از فایل پیکربندی با گزینههای typeAware و typeCheck
- اشتراک یک program مشترک بین لینت و بررسی نوع برای حذف تحلیل تکراری
- بین ۱۲ تا ۱۸ برابر سریعتر از ESLint با typescript-eslint در بنچمارک تیم
- گزارش زمان هر قانون و کاهش چشمگیر حجم باینری منتشرشده




