𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝗘𝘅𝗽𝗹𝗮𝗶𝗻𝗲𝗱: 𝗪𝗵𝘆 𝗬𝗼𝘂 𝗡𝗲𝗲𝗱 𝗜𝘁 -> TypeScript به زبان ساده: چرا به آن نیاز دارید؟
شما هر روز JavaScript مینویسید. همه چیز هم خوب کار میکند. پس چرا باید به TypeScript مهاجرت کنید؟
یک بار دو روز از وقتم را صرف رفع یک باگ در محیط Production کردم. فقط یک غلط املایی ساده در نام یک ویژگی (property) بود. TypeScript آن خطا را در عرض چند میلیثانیه پیدا میکرد.
TypeScript همان JavaScript به همراه تایپها (types) است. مایکروسافت آن را در سال ۲۰۱۲ ساخت. تیمهای بزرگی در Google و Slack از آن استفاده میکنند.
TypeScript جایگزین JavaScript نیست. این زبان به JavaScript خالص کامپایل میشود. مرورگرها و Node.js فایلهای JS خروجی را اجرا میکنند. TypeScript به شما کمک میکند قبل از اجرا، کد بهتری بنویسید.
این دو مثال را با هم مقایسه کنید:
JavaScript:
function greetUser(name) {
return "Hello, " + name.toUpperCase();
}
greetUser(42); // این باعث کرش کردن برنامه شما در زمان اجرا میشود.
TypeScript:
function greetUser(name: string): string {
return "Hello, " + name.toUpperCase();
}
greetUser(42); // این بلافاصله یک خطا در ویرایشگر شما نشان میدهد.
چرا از TypeScript استفاده کنیم؟
- شناسایی زودهنگام خطاها: شما اشتباهات را هنگام تایپ کردن پیدا میکنید، نه زمانی که کاربران آنها را مییابند.
- تکمیل خودکار (autocomplete) بهتر: ویرایشگر شما ساختار دادههایتان را میشناسد و ویژگیها را پیشنهاد میدهد.
- مستندات زنده: با نگاه کردن به امضای تابع (signature)، دقیقاً میبینید که تابع به چه دادههایی نیاز دارد.
- بازنویسی (refactoring) ایمن: اگر نام یک ویژگی را تغییر دهید، TypeScript تمام نقاطی از کد شما را که دچار مشکل شدهاند، مشخص میکند.
چگونه شروع کنیم:
نصب از طریق npm: npm install -g typescript
ایجاد فایلی به نام hello.ts: const message: string = "Hello, TypeScript!"; console.log(message);
کامپایل کردن آن: tsc hello.ts
این کار یک فایل hello.js ایجاد میکند. تایپها در خروجی حذف میشوند و یک JavaScript تمیز برای اجرا توسط مرورگر باقی میماند.
اشتباهات رایجی که باید از آنها دوری کرد:
- استفاده از "any" برای همه چیز: این کار مزایای TypeScript را از بین میبرد. دقیق باشید.
- نادیده گرفتن خطاها: خطاها را با کامنت مخفی نکنید. مشکل اصلی را حل کنید.
- بیش از حد تعیین تایپ (Over-annotating): TypeScript هوشمند است. این زبان اغلب میتواند تایپ را از طریق استنتاج (inference) حدس بزند.
TypeScript منحنی یادگیری کمی دارد، اما با بزرگتر شدن پروژههایتان، ارزش آن مشخص میشود.