این نوشته صرفا تجربه شخصی من از مشکلیه که برام پیش اومد شما میتونین زرنگ تر باهوش تر و باسواد تر از من باشین و توی کارتون دچار این مشکل نشین
از اونجایی که تعداد کتابخونه ها و پلاگین هایی که توی برنامه نویسی به کمکمون میان انقدر زیاده که به نظر غیر قابل شمارش میاد ولی طبیعتا بعضی از اونها خیلی معروف میشن مثل Eslint که احتمالا اگر دلتون بخواد کدتون تر و تمیز باشه محاله که اسمش رو نشنیده باشین و انقدری جدی و سختگیر وامیسته بالاسر کدتون انگار که یه معلم خیلی جدی داره ایراداتونو میگیره حتی کوچکترین موارد رو هم بهتون اخطار میده اگه فاصله کمو زیاد بذارین زیر همون قسمت به صورت خط چین بهتون اخطار میده و هزاران مورد دیگه
از طرفی اگه برنامه نویس وب باشین و با Javascript سر و کله زده باشین میدونین که یکی از ویژگیهاش که اوایل به عنوان نقطه قوتش شناخته میشد الان به طرز عجیبی توی دسته بندی نقاط ضعفش محسوب میشه و اون هم اینه که متغیرهای شما نیازی به اینکه نوع داده مشخص داشته باشن ندارن
ولی خب این افسانه بعد از گسترده شدن این زبان و همچنین بوجود اومدن کتابخونه ها و فریمورک های متنوع دیگه ای مثل vue , angular, react, node و .... که هم فرانت و هم بکند دولوپر ها ازشون بی بهره نیستن تبدیل شد به یک سری عذاب ادامه دار که وسط کار میدیدی که برنامه ای که براش کلی وقت گذاشتی و اجراش کردی مرد و یه صفحه سفید اومد بالا و اصطلاحا crash کرد حالا چرا؟ چون یکی از متغیر هات که باید عدد میگرفت رشته گرفته 😒
حالا این مرض چطوری درمان میشد؟
به عنوان یه برنامه نویس از جلو توی ری اکت باید یه بسته نرم افزاری نصب میکردی به اسم Proptype که بعدتوی کامپوننتی که توسعه دادی و نوع داده ای اون پراپ هایی که کامپوننتت از بقیه کامپوننت ها میگیره رو توش تعریف میکردی
اما این راه حل جلوی بروز مشکل رو نمیگرفت عملا یچیزی مثل مسکن بود ولی درمان نبود و از اونجایی که بهترین درمان پیشگیریه جهان رفت به سمت توسعه جاوا اسکریپت برمبنای " نوع داده ای" که عملا وارد تایپ اسکریپت شدیم.
اینکه دقیقا typescript چی هست و چیکار و میکنه و چیا نیاز داره که در این مقال نمیگنجد ولی تعریف عمومیش همینه که همون جاوااسکریپته که باید نوع داده ای رو مشخص کنی و اگر نکنی و یا اگر متغیرت رشته ای باشه بیای بهش عدد بدی همونجا کلی ارور و ... میگیری و میفهمی داری اشتباه میزنی
اما Typescript چه ربطی به Eslint داشت؟
درموارد خیلی نادر پیش میاد که این دوتا باهم سازگار نیستن هر کدومو که فعال میکنی اون یکی غیر فعال میشه
قضیه آشپز که دوتا شد غذا یا شور میشه یا بی نمک
برای من هم این اتفاق افتاد و یکی دوروزی گشتم دنبال یه کتابخونه خوب که بتونم مشکل رو حل کنم، اگه برای شما هم این اتفاق افتاد که بعد از نصب Typescript، دیگه ارور Eslint نگرفتین بدونین اونقدری حرفه ای نشدین که Eslint ارور ها تون رو نگیره و اون وسط یه تداخلی پیش اومده که باید رفع شه 😊
چطوری؟
با نصب typescript-eslint/eslint-plugin و typescript-eslint/parser عملا این دوتا کار رو براتون درمیارن و دوباره با ارور های Eslint مواجه میشین