تایپاسکریپت پیروز شد. این همان چیزی است که به دست آوردیم.
بحث تمام شده است. اکثر پروژههای جدید فرانتاند بهصورت پیشفرض از TypeScript استفاده میکنند. دیگر کسی بر سر استفاده یا عدم استفاده از آن بحث نمیکند.
ارزش واقعی آن فقط پیدا کردن غلطهای تایپی نیست؛ بلکه بسیار عمیقتر از ادعای اولیه است.
تایپها مستنداتی را فراهم میکنند که هرگز قدیمی و منسوخ نمیشوند. امضای یک تابع (function signature) دقیقاً به شما میگوید که یک قطعه کد به چه چیزی نیاز دارد و چه چیزی برمیگرداند. اگر توسعهدهندهای گزینه جدیدی به یک union type اضافه کند، کامپایلر شما را مجبور میکند تا تمام بخشهای کد خود را بهروزرسانی کنید. کامنتها فرسوده میشوند، اما تایپها نه.
بازنویسی کد (Refactoring) از یک کار ترسناک به کاری ایمن تبدیل میشود. در کدهای بدون تایپ، تغییر نام یک فیلد مانند قمار کردن است. در TypeScript، شما تایپ را تغییر میدهید و کامپایلر لیستی از تمام خطوطی که دچار خطا شدهاند را به شما میدهد. این کار ترس از دستکاری کدهای قدیمی را از بین میبرد.
تایپها همچنین کار با هوش مصنوعی را بهبود میبخشند.
وقتی از یک هوش مصنوعی میخواهید یک کد JavaScript بدون تایپ را ویرایش کند، ساختار را حدس میزند. این کار منجر به اشتباهاتی میشود که در نهایت به خطاهای محیط عملیاتی (production) ختم میشوند. در TypeScript، تایپ مانند یک مشخصات فنی (specification) عمل میکند. هوش مصنوعی قوانین را میداند. اگر هوش مصنوعی اشتباه کند، کامپایلر بلافاصله آن را شناسایی میکند. تایپها «کد محتمل» را به «کد اثباتشده» تبدیل میکنند.
تایپها سرعت شما را کم نمیکنند؛ بلکه در جریان کاری با هوش مصنوعی، سرعت شما را بالا میبرند. آنها مانند حفاظ عمل میکنند تا بتوانید بدون بررسی دستی تکتک خطوط، به کد تولیدشده اعتماد کنید.
تایپهای خود را با هدف مشخص بنویسید:
• بهجای استفاده از چندین boolean، از unionها استفاده کنید. وضعیتی مانند "loading" | "error" | "ready" از ایجاد حالتهای غیرممکن جلوگیری میکند.
• برای تایپهای دامنه (domain types) خود نام انتخاب کنید. استفاده از "type Cents = number" هدف شما را شفاف میکند.
• از "any" دوری کنید. بهجای آن از "unknown" استفاده کنید و تایپهای خود را محدود (narrow) کنید. استفاده از "any" شبکه ایمنی شما را از بین میبرد.
• اجازه دهید استنتاج (inference) کار خود را انجام دهد. نیازی نیست همه چیز را برچسبگذاری کنید. فقط امضای توابع و APIهای خروجی را مشخص کنید و اجازه دهید بقیه موارد خودبهخود پیش بروند.
TypeScript مجموعهکدهای (codebases) شما را به مجموعهای از قراردادهای اجباری تبدیل کرد. این قراردادها بازنویسی بیخطر و کمکرسانی قابلاعتماد هوش مصنوعی را ممکن میسازند.
ما استفاده از تایپها را برای جلوگیری از باگها شروع کردیم، اما به این دلیل به استفاده از آنها ادامه میدهیم که آنها زیربنای هر چیز دیگری هستند.
منبع: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8
