تایپ اسکرپیت (ُTypeScript) زبان برنامه نویسی است که جاوااسکریپت را در بر می گیرد و یا به عبارتی superset جاوااسکرپیت است و قابلیتها و ویژگیهایی از جمله تایپ های استاتیک را به جاوااسکرویپت اضافه مینماید و این زبان اوپن سورس است که توسط مایکروسافت توسعه و نگهداری میگردد .
اما تایپ اسکرپیت به طور مستقیم نمی تواند روی محیط های که جاوااسکریپت اجرا می شوند، اجرا شود از جمله مرورگرها و یا نود جی اس و جهت اجرا در این محیط ها باید ابتدا کامپایل گردد و یا به عبارت بهتر میبایست transpile گردد و باید به همان جاوااسکریپت تبدیل گردد.
اما سئوالی که پیش میاید این است که فایده نوشتن کد به زبان تایپ اسکریپت با وجود اینکه در نهایت به جاوااسکریپت تبدیل می شود چیست؟
نوشتن کد به زبان تایپ اسکرپیت در زمان توسعه نرم افزار به ما کمک می کند که راحت تر انجام شود و از بعضی از باگ های احتمالی زمان اجرا جلوگیری می نماید و همچنین می توان از بعضی از قابلیت های که در جاوااسکریپت وجود ندارد بهرهمند شد.
به عنوان مثال ما اگر فانکشن ساده زیر را داشته باشیم
function add (num1, num2){ return num1 + num2; }
و به طور اشتباه اعدادی که می خواهیم توسط این فانکش جمع شود را به صورت string به این فانکشن بفرستیم جاوااسکرپیت خطایی به ما نشان نمی دهند و دو مقدار را concat می نماید و نتیجه اینکه
add('2','3') //23
به جای ۵ به ما ۲۳ برگردانده می شود.
اما اگر این فانکشن با تایپ اسکرپیت به صورت زیر نوشته شود خطا گرفته می شود و اجرا نمی گردد.
برای شروع کار با تایپ اسکریپت یا به عبارتی برای تبدیل کد تایپ اسکریپت به جاوا اسکریپت باید ابتدا آن را نصب کنیم و نصب آن چیزی نیست جز نصب یک پکیج نودجی اس به صورت زیر:
npm install -g typescript
و بعد از نصب می توانید با دستوری tsc فایل تایپ اسکریپت را به جاوااسکرپیت تبدیل نمایید
tsc helloworld.ts
به طور خلاصه فواید تایپ اسکرپیپ برای ما به شرح ذیل است:
۱- استفاده از استاتیک تایپ ها و جلوگیری از خطاهای زمان اجرا
۲- استفاده از قابلیت های جدید جاوااسکریپت ( با توجه به اینکه کدها کامپایل و قابل اجرا در مرورگرهای قدیمی تر می گردند)
۳- استفاده از ویژگی های که در جاوااسکریپت وجود ندارد مانند interface و generic ها
۴ - استفاده از ویژگی های Meta-Programming مانند Decorator ها
۵ - قابلیت پیکربندی و قابل config برای نیازمندی ما
۶ - استفاده بهتر از قابلیت های IDE های مدرن مانند visual studio code