TypeScript پیروز شد. این همان چیزی است که به دست آوردیم.

بحث‌ها تمام شده است. توسعه‌دهندگان دیگر بر سر استفاده از TypeScript بحث نمی‌کنند. پروژه‌های جدید فرانت‌اند به‌صورت پیش‌فرض از آن استفاده می‌کنند.

هدف اولیه، شناسایی غلط‌های تایپی قبل از کرش کردن اپلیکیشن بود. اما این مزیت واقعی نیست. ارزش واقعی در چیزی بسیار عمیق‌تر نهفته است.

TypeScript مستنداتی می‌سازد که هرگز قدیمی نمی‌شوند. یک function signature دقیقاً به شما می‌گوید که یک تابع به چه چیزی نیاز دارد و چه چیزی برمی‌گرداند. اگر گزینه جدیدی به یک type اضافه کنید، کامپایلر تمام جاهایی را که باید کد خود را به‌روزرسانی کنید، به شما نشان می‌دهد. در حالی که یک کامنت (comment) فقط همان‌جا می‌ماند و به شما دروغ می‌گوید.

Refactoring ایمن می‌شود. در کدهای بدون تایپ، تغییر نام یک فیلد مانند قمار کردن است؛ شما رشته‌ها را جستجو می‌کنید و به بهترین‌ها امیدوار می‌مانید. در TypeScript، شما تایپ را تغییر می‌دهید و کامپایلر فهرستی از تمام خطوط خراب شده را به شما می‌دهد. دیگر از کد خود نمی‌ترسید.

تایپ‌ها همچنین به شما در استفاده از AI کمک می‌کنند.

استفاده از یک ابزار AI برای حدس زدن کد در JavaScript خطرناک است. این ابزارها اشتباهاتی مرتکب می‌شوند که منجر به خطاهای محیط عملیات (production) می‌شود. در TypeScript، تایپ مانند یک spec عمل می‌کند. AI می‌داند چه چیزی مجاز است. اگر AI اشتباه کند، کامپایلر بلافاصله آن را می‌گیرد. تایپ‌ها «کد محتمل» را به «کد صحیح» تبدیل می‌کنند.

قبلاً می‌گفتند تایپ‌ها سرعت شما را کم می‌کنند. در دنیای AI، تایپ‌ها سرعت شما را بالا می‌برند. آن‌ها مانند نرده‌های حفاظتی (guardrails) عمل می‌کنند. می‌توانید با اطمینان کد تولید شده را بپذیرید، به جای اینکه بخواهید هر خط را دستی بررسی کنید.

با این قوانین، تایپ‌های بهتری بنویسید:

  • به جای استفاده از چندین boolean از unionها استفاده کنید. وضعیتی مانند "loading" | "error" | "ready" از حالت‌های غیرممکن جلوگیری می‌کند.
  • تایپ‌های دامنه (domain types) خود را نام‌گذاری کنید. استفاده از "type Cents = number" قصد شما را شفاف می‌کند.
  • از "any" دوری کنید. در عوض از "unknown" استفاده کنید و آن را محدود (narrow) کنید. "any" شبکه ایمنی شما را از بین می‌برد.
  • اجازه دهید inference کارش را انجام دهد. نیازی نیست همه چیز را برچسب‌گذاری کنید. امضای توابع و APIهای خروجی خود را مشخص کنید و اجازه دهید بقیه موارد به صورت خودکار پیش بروند.

TypeScript فقط غلط‌های تایپی را پیدا نکرد؛ بلکه پایگاه‌های کد را به سیستم‌هایی از قراردادهای اجباری تبدیل کرد. این قراردادها بازنویسی (refactoring) بدون ترس و ابزارهای AI قابل اعتماد را ممکن می‌سازند.

ما استفاده از تایپ‌ها را برای جلوگیری از باگ‌ها شروع کردیم. اما به این دلیل به استفاده از آن‌ها ادامه می‌دهیم که آن‌ها زیربنای هر چیز دیگری هستند.

منبع: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo