تایپ اسکریپت چیست؟
تایپ اسکریپت چیست؟ به شکل کوتاه میتوان پاسخ داد که TypeScript هم یک زبان برنامهنویسی است. اما در واقع میتوان آن را حالت توسعهیافتهتر زبان جاوا اسکریپت دانست. این زبان در شرکت مایکروسافت در اوایل سال 2010 توسعه یافت. سپس در سال 2012 منتشر شد و به عنوان یک زبان منبعباز1open sourced در نظر گرفته شد. مسئول توسعه اصلی این زبان فردی به نام آندرس هجلسبرگ2Andres Hejlsberg است. این توسعهدهنده قبلاً به خاطر توسعه زبانهایی چون #c و پاسکال شهرت داشته است.
همان طور که گفته شد تایپ اسکریپت را محیط بر جاوا اسکریپت نیز مینامند. برخی نیز اصطلاح JavaScript with types (جاوا اسکریپت با در نظر گرفتن نوع متغیرها و توابع و …) را در مورد تایپ اسکریپت بهکار میبرند. هدف ما در این مقاله این نیست که ساختار و فرمت کار با این زبان را آموزش دهیم. اما به طور خلاصه میتوان تایپ اسکریپت را شامل چهار بخش زیر دانست:
- زبان برنامهنویسی: از نظر برنامهنویسی، تایپ اسکریپت یک زبان است که تمامی ساختارها و فرمتهای مربوط به زبان جاوا اسکریپت را شامل میشود. علاوه بر آن، فرمتها و ساختارهای خاص خود را هم برای مشخص کردن و استفاده از انواع3Types در برمیگیرد.
- چککننده نوع: از جمله قابلیتهای دیگر این زبان آن است که میتوان در فایلهای ایجاد شده با تایپ اسکریپت یا جاوا اسکریپت به جستجو پرداخته و درک صحیحی از ساختار کدها ( توابع، متغیرها و …) بدست آورد. در نهایت به شما در مورد نقایص و موارد نادرست اخطار دهد.
- کامپایلر: کامپایلر4compiler در این زبان به بررسی انواع درون کدها پرداخته، خطاهای احتمالی را گزارش میدهد. در نهایت کد جاوا اسکریپت معادل را نیز در اختیار شما قرار میدهد.
- خدمات زبان: از دیگر قابلیتهای تایپ اسکریپت آن است که میتواند با ویرایشگرهای کد مانند VS code ادغام شود و امکانات مناسبی را در زمینه خطاهای برنامهنویسی در اختیار توسعهدهنده بگذارد.
ویژگیهای زبان تایپ اسکریپت چیست؟
در بخش قبل به شکل خلاصه به برخی ویژگیهای تایپ اسکریپت اشاره کردیم. در این قسمت از مقاله سعی داریم بیشتر شما را با این ویژگیها آشنا کنیم. برخی از این ویژگیها نقاط ضعف جاوا اسکریپت را پوشش میدهند.
ابزارهای مناسب برای توسعهدهندگان
معمولاً برنامهنویسها و توسعهدهندگان از ویرایشگرهای کد مانند VS code استفاده میکنند. اینگونه ویرایشگرها سازگاری خوبی با تایپ اسکریپت دارند. پیشنهادهای مناسبی را هنگام کدنویسی در اختیار برنامه نویس میگذارند تا بهتر بتواند به کار خود بپردازد.
مثلاً فرض کنید در حال برنامهنویسی در VS code هستید و قصد دارید اعضای یک پارامتر از جنس رشته5string را در کد خود اعمال کنید (منظور توابع یا المانهایی است که در زبان جاوا اسکریپت میتوان بر روی متغیرهای رشتهای اعمال کرد). در چنین حالتی تایپ اسکریپت به کمک قابلیتهای این ویرایشگر، تمامی گزینههای ممکن را به شما پیشنهاد میدهد. در اصطلاح به چنین فرآیندی auto completions گفته میشود.
مستندسازی مناسب کدها
برای اینکه به یکی دیگر از مزیتها و ویژگیهای تایپ اسکریپت اشاره کنیم، قطعه کد زیر را در نظر بگیرید:
interface Painter {
finish(): boolean;
ownMaterials: Material[];
paint(painting: string, materials: Material[]): boolean;
}
function paintPainting(painter: Painter, painting: string): boolean { /* ... */ }
گر چه ما به ساختار و فرمت کدنویسی با تایپ اسکریپت اشارهای نکردهایم، امّا هر برنامهنویس با دانش حداقلی نیز با نگاه به چنین کدی متوجه ساختار متغیرها میشود. مثلاً میتوانید درک کنید که شیء Painter دارای سه ویژگی است که دو مورد آنها از جنس متود یا تابع هستند. نوع متغیرها و اشیاء نیز در داخل کد مشخص شده است.
این مستندسازی قوی و مناسب علاوه بر اینکه راهنمای برنامهنویس و توسعهدهنده است، برای جلوگیری از بروز اشتباهات و همچنین انجام پروژههای تیمی هم میتواند بسیار مناسب باشد.
اعمال محدویتهای منطقی در کدنویسی
یکی از نقطهضعفهای جاوا اسکریپت آن است که خیلی به ایرادهای منطقی که ممکن است در ساختار کدهای شما وجود داشته باشد، اهمیت نمیدهد. مثلاً کد زیر را در نظر بگیرید:
// Previously: sayMyName(firstName, lastName) { ...
function sayMyName(fullName) {
console.log(`You acting kind of shady, ain't callin' me ${fullName}`);
}
sayMyName("Beyoncé", "Knowles");
// ~~~~~~~~~
// Expected 1 argument, but got 2
در این کد تابع sayMyName با «یک» پارامتر تعریف شده است، امّا هنگام فراخوانی «دو» پارامتر به آن داده شده است. خب مسلما چنین کاری از نظر برنامهنویسی منطقی محسوب نمیشود. پیشنهاد میکنیم در این راستا، مقاله «کدنویسی تمیز در جاوا اسکریپت» را هم مطالعه بفرمایید.
امّا به هر صورت چنین کدی بدون خطا در زبان جاوا اسکریپت اجرا میشود. در واقع پارامتر دوم در تابع لحاظ نمیشود. اگر همین کد را در تایپ اسکریپت اجرا کنید، از شما ایراد گرفته و آن را اجرا نمیکند. به این ترتیب شما متوجه اشتباهات کد نویسی خود میشوید و میتوانید آنها را اصلاح کنید.
مثالی از کاربرد تایپ اسکریپت
با توجه به توضیحاتی که تا اینجا ارائه شد، متوجه شدهاید که تایپ اسکریپت چیست و چه کاربردی دارد. ویژگیهای این زبان بیان میکند که در واقع هدف از پیدایش آن، بهترکردن و دقیقتر کردن فرآیند کدنویسی با زبان جاوا اسکریپت است. به نوعی میتوان یادگیری تایپ اسکریپت را در ادامه مسیر یادگیری جاوا اسکریپت دانست. در ادامه مثالی ساده برای درک بهتر کاربرد تایپ اسکریپت آوردهایم:
const firstName = "Lizzo";
const nameLength = firstName.length();
// ~~~~~~
// This expression is not callable.
خاصیت چک کردن نوع در تایپ اسکریپت در این مثال به وضوح نشان داده میشود. این کد در واقع یک کد جاوا اسکریپت است و چیزی فراتر از آن نیست. امّا دارای خطا است. ویژگی length در جاوا اسکریپت قرار است یک عدد را برگرداند و یک تابع نیست که برای متغیّر firstName تعریف شده باشد. همین ایراد (یعنی بهکارگیری نوع غلط یک ویژگی) چیزی است که در زبان تایپ اسکریپت روی آن تأکید شده است.
در صورت استفاده از تایپ اسکریپت و نوشتن چنین کدی، این مسئله به شما اخطار داده میشود. مثلاً در ویرایشگرهای کد ممکن است توضیحات اضافهتری مانند شکل زیر در اختیار شما قرار بگیرد تا متوجه اشتباه کدنویسی خود بشوید:
آغاز کار با TypeScript
اگر با مطالعه این مقاله به پاسخ پرسش خود (تایپ اسکریپت چیست) رسیدهاید و به این زبان برنامه نویسی علاقهمند شدهاید، میتوانید آن را امتحان کنید! شروع کار با TypeScript چندان دشوار نیست. در ادامه دو روش برای این کار ارائه میشود.
استفاده از ابزار آنلاین
یکی از سادهترین روشها برای کار با TypeScript استفاده از ابزار آنلاینی به نام Playground است. شما میتوانید با مراجعه به سایت TypeScript Playground، به صورت آنلاین قابلیتهای این زبان برنامهنویسی را امتحان کنید.
در بخش ویرایشگر کد مربوط به این ابزار میتوانید کدهای خود را تایپ کنید. پیشنهادات تایپ اسکریپت یا خطاهای احتمالی به شما نشان داده میشود.
اجرای تایپ اسکریپت در سیستم شخصی
یکی دیگر از روشهای آغاز کار با TypeScript، کمک گرفتن از Node.js است. اگر Node.js را روی سیستم شخصی خود نصب کرده باشید، میتوانید با اجرای دستور زیر در محیط خط فرمان، TypeScript را به صورت سراسری در سیستم نصب کنید.
npm i -g typescript
بعد از نصب، به کمک دستور tsc که مخفف TypeScript compiler است، درمحیط خط فرمان میتوان از این زبان برنامهنویسی بهره برد. به عنوان مثال دستور زیر را در محیط خط فرمان تایپ کنید:
tsc --version
بعد از اجرای این دستور باید نسخه تایپ اسکریپتی که روی سیستم شما نصب شده است، نشان داده شود. احتمالاً عبارتی به شکل Version X.Y.Z را به عنوان خروجی این دستور مشاهده خواهید کرد.
به همین ترتیب میتوان دستورات دیگری مانند tsc --init را در خط فرمان اجرا کرده و کد نویسی با تایپ اسکریپت را ادامه داد. امّا از آنجایی که هدف ما در این مقاله صرفاً پاسخ به پرسش «تایپ اسکریپت چیست؟» و آشنایی اوّلیه با این زبان است، به همین میزان بسنده میکنیم.
جمعبندی
تایپ اسکریپت چیست؟ یک زبان برنامهنویسی که در واقع محیط بر جاوا اسکریپت است. تمامی ویژگیهای جاوا اسکریپت را در خود جای داده و ویژگیهای اضافیتر بخصوص برای تشخیص انواع و بررسی ایرادهای کدنویسی نیز در آن گنجانده شده است.
البتّه توجه داشته باشید که دردنیای وب، یادگیری هر تکنولوژی و زبان برنامهنویسی نیازمند زمان و حوصله فراوان است. همانطور که برای یادگیری php، گذراندن یک دوره آموزش زبان php مقدماتی یا پیشرفته ضروری است، یادگیری تایپ اسکریپت و سایر زبانهای برنامهنویسی نیز نیازمند چنین تلاشی هستند.
پاورقی:
- 1open sourced
- 2Andres Hejlsberg
- 3Types
- 4compiler
- 5string






