تایپاسکریپت پیروز شد. این چیزی است که به دست آوردیم.
دیگر کسی درباره استفاده از TypeScript بحث نمیکند. پروژههای جدید فرانتاند بهصورت پیشفرض از آن استفاده میکنند. بحث تمام شده است. تایپاسکریپت پیروز شد.
پیروز شدن بخش خستهکننده ماجراست. ارزش واقعی در این است که تایپها (types) چه کمکی به جریان کاری شما میکنند. این موضوع فراتر از صرفاً پیدا کردن غلطهای تایپی است.
امضای یک تابع (function signature) مانند مستندات عمل میکند. این مستندات هرگز قدیمی و بیمصرف نمیشوند. اگر کد تغییر کند، کامپایلر بلافاصله فرآیند ساخت (build) را با خطا متوقف میکند.
به تابعی که یک یادآوری را زمانبندی میکند نگاه کنید. بدون خواندن حتی یک کامنت، میدانید که تابع به چه چیزی نیاز دارد و چه چیزی برمیگرداند. شما گزینههای دقیق برای کانال ارتباطی را میبینید. اگر کانال جدیدی اضافه کنید، کامپایلر تمام جاهایی را که باید کد خود را بهروزرسانی کنید، به شما میگوید. اما یک کامنت فقط همانجا باقی میماند و اشتباه از آب در میآید.
بازنویسی کد (Refactoring) ایمن میشود. در کدهای بدون تایپ، تغییر نام یک فیلد ترسناک است. شما به دنبال رشتهها (strings) میگردید و امیدوارید که همه چیز درست پیش برود. در TypeScript، شما تایپ را تغییر میدهید. کامپایلر لیستی از تمام مواردی که خراب شدهاند را به شما میدهد. بازنویسی دیگر پرخطر نیست؛ بلکه به یک کار ایمن تبدیل میشود.
تایپها همچنین به شما در استفاده از هوش مصنوعی کمک میکنند.
وقتی از یک هوش مصنوعی میخواهید یک کد جاوااسکریپت بدون تایپ را ویرایش کند، ساختار شیء (object shape) را حدس میزند. اما وقتی از TypeScript استفاده میکنید، تایپ همان مشخصات (specification) است. هوش مصنوعی دقیقاً میداند چه چیزی مجاز است. خطاها به جای کرش کردن در محیط عملیاتی (production)، به صورت خطاهای کامپایل ظاهر میشوند. تایپها کدهای تولیدشده را به کدهایی تبدیل میکنند که کاملاً با ساختار پروژه همخوانی دارند.
قبلاً میگفتند تایپها سرعت شما را کم میکنند. اما در یک جریان کاری مبتنی بر هوش مصنوعی، تایپها سرعت شما را بالا میبرند. آنها مانند حفاظ (guardrails) عمل میکنند. شما میتوانید با اطمینان کدهای تولیدشده را بپذیرید، به جای اینکه بخواهید تکتک خطوط را دستی بررسی کنید.
با این قوانین، تایپهای بهتری بنویسید:
- به جای استفاده از چندین Boolean، از Unionها استفاده کنید. وضعیتی مانند
"loading" | "error" | "ready"بهتر از سه پرچم (flag) جداگانه است. - تایپهای دامنه (domain types) خود را نامگذاری کنید. استفاده از تایپی مانند
Centsبه جای یک عدد ساده، نشاندهنده هدف شماست. - از
anyدوری کنید. ازunknownاستفاده کنید و سپس آن را محدود (narrow) کنید. کلمه کلیدیanyشبکه ایمنی شما را از بین میبرد. - اجازه دهید استنتاج (inference) کارش را انجام دهد. همه چیز را تایپگذاری (annotate) نکنید. فقط مرزهای خود را مشخص کنید و اجازه دهید بقیه موارد به صورت خودکار پیش بروند.
تایپاسکریپت پایگاههای کد (codebases) را به قراردادهای صریح تبدیل کرد. این قراردادها امکان بازنویسی بدون ترس و کمک قابل اعتماد هوش مصنوعی را فراهم میکنند.
ما استفاده از تایپها را برای جلوگیری از باگها شروع کردیم. اما به این دلیل به استفاده از آنها ادامه میدهیم که آنها زیربنای هر چیز دیگری هستند.
Source: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo
Optional learning community: https://t.me/GyaanSetuAi
