eslint-plugin-unicorn: بیش از ۲۰۰ قانون قدرتمند
خلاصهٔ کاملتر
افزونهی eslint-plugin-unicorn که Sindre Sorhus نگهش میداره، یه مجموعهی بزرگ با بیش از ۲۰۰ قانون قدرتمند برای ESLint ـه. بیشتر قوانین جاوااسکریپت و تایپاسکریپت رو هدف میگیرن، ولی بعضیهاشون با افزونهی زبان مناسب میتونن CSS و HTML و JSON و Markdown رو هم بررسی کنن. توی مستندات اومده که ابزار XO هم همین افزونه رو داخل خودش داره.
طبق راهنما، این افزونه به ESLint نسخهی >=10.4، پیکربندی flat config و ESM نیاز داره. برای استفاده یا از یکی از preset config های آماده استفاده میکنی یا هر قانون رو دستی توی eslint.config.js تنظیم میکنی. یه configuration مثل recommended هم هست که مجموعهای از قوانین رو یکجا فعال میکنه.
تمرکز اصلی خیلی از قوانین روی سوقدادن به سمت الگوهای مدرن و خواناتره. مثلاً بهجای متدهای قدیمیِ آرایه که خود آرایه رو تغییر میدن، متدهای بدون تغییر مثل Array#toSorted()، Array#toReversed() و Array#toSpliced() رو ترجیح میده. یا قانون no-for-each پیشنهاد میکنه بهجای forEach از for…of استفاده کنی، و no-array-reduce استفاده از reduce رو محدود میکنه.
یه دستهی دیگه از قوانین دنبال جلوگیری از باگهای ظریفان. مثلاً no-invalid-argument-count صدازدن تابع با تعداد آرگومان اشتباه رو میگیره، no-invalid-fetch-options گزینههای نامعتبر توی fetch() رو گزارش میده، و قوانین مربوط به DOM مثل prefer-add-event-listener استفاده از addEventListener رو بهجای پراپرتیهای on تشویق میکنن. کلی قانون هم برای پاکسازی کدهای زائد هست، مثل حذف spread بیمورد یا undefined بیفایده.
یه ویژگی مهم اینه که خیلی از این قوانین با علامت 🔧 مشخص شدن، یعنی با فلگ --fix خط فرمانِ ESLint بهصورت خودکار قابل رفعان و لازم نیست دستی درستشون کنی. بعضیها هم با پیشنهادهای ویرایشگر (💡) بهصورت دستی رفع میشن و تعداد کمی هم به اطلاعات نوع تایپاسکریپت (💭) نیاز دارن. در کل این افزونه یه جعبهابزار بزرگ برای یکدست و مدرن نگهداشتن کدبیسه.
نکات کلیدی:
- eslint-plugin-unicorn بیش از ۲۰۰ قانون ESLint داره و بیشترشون روی جاوااسکریپت و تایپاسکریپتان.
- بعضی قوانین با افزونهی مناسب روی CSS، HTML، JSON و Markdown هم کار میکنن.
- به ESLint نسخهی >=10.4، flat config و ESM نیاز داره.
- خیلی از قوانین به سمت متدهای مدرنتر آرایه و DOM سوق میدن.
- بخش زیادی از قوانین با فلگ --fix بهصورت خودکار قابل رفعان.




