لرن بلاگ

مقاله مرتبط با موضوع «تایپ اسکریپت چیست»

تایپ اسکریپت چیست؟ آغاز به کار با TypeScript

مقدمه

برای بسیاری از علاقه‌مندان به برنامه نویسی سایت شاید نام سه زبان HTML، CSS و جاوا اسکریپت بیشتر از هر زبان برنامه‌نویسی دیگری آشنا باشد. اما در دنیای وب تکنولوژی‌های فراوانی وجود دارند که هر یک با هدف مشخصی طراحی شده و به دنبال رفع برخی مشکلات در این حیطه هستند. اگر شما هم نام TypeScript را شنیده‌اید و برایتان جای سؤال دارد که «تایپ اسکریپت چیست؟»، این مقاله تا حدودی می‌تواند به پرسش شما پاسخ دهد. ما در این مقاله سعی می‌کنیم با توضیحاتی مختصر به پرسش «تایپ اسکریپت چیست؟» پاسخ داده و در مورد ویژگی‌های آن صبحت کنیم. همچنین به ذکر روش‌هایی می‌پردازیم که به کمک آنها بتوانید کدهای تایپ اسکریپت را نوشته و اجرا کنید. باید بدانید که تایپ اسکریپت در واقع زبان برنامه‌نویسی جدیدی نیست. بیشتر با هدف برطرف کردن و رفع عیوب مربوط به زبان جاوا اسکریپت ابداع شده است. هدف از استفاده از تایپ اسکریپت این نیست که نحوه رفتار یا چگونگی کارکردن کدهای جاوا اسکریپت را تغییر دهد. با خواندن ادامه مقاله، اطلاعات بیشتری در مورد TypeScript بدست خواهید آورد.

تایپ اسکریپت چیست؟

تایپ اسکریپت چیست؟ به شکل کوتاه می‌توان پاسخ داد که TypeScript هم یک زبان برنامه‌نویسی است. اما در واقع می‌توان آن را حالت توسعه‌یافته‌تر زبان جاوا اسکریپت دانست. این زبان در شرکت مایکروسافت در اوایل سال 2010 توسعه یافت. سپس در سال 2012 منتشر شد و به عنوان یک زبان منبع‌باز1open sourced در نظر گرفته شد. مسئول توسعه اصلی این زبان فردی به نام آندرس هجلسبرگ2Andres Hejlsberg است. این توسعه‌دهنده قبلاً به خاطر توسعه زبان‌هایی چون #c و پاسکال شهرت داشته است.

همان طور که گفته شد تایپ اسکریپت را محیط بر جاوا اسکریپت نیز می‌نامند. برخی نیز اصطلاح JavaScript with types (جاوا اسکریپت با در نظر گرفتن نوع متغیر‌ها و توابع و …) را در مورد تایپ اسکریپت به‌کار می‌برند. هدف ما در این مقاله این نیست که ساختار و فرمت کار با این زبان را آموزش دهیم. اما به طور خلاصه می‌توان تایپ اسکریپت را شامل چهار بخش زیر دانست:

  • زبان برنامه‌نویسی: از نظر برنامه‌نویسی، تایپ اسکریپت یک زبان است که تمامی ساختارها و فرمت‌های مربوط به زبان جاوا اسکریپت را شامل می‌شود. علاوه بر آن، فرمت‌ها و ساختارهای خاص خود را هم برای مشخص کردن و استفاده از انواع3Types در برمی‌گیرد.
  • چک‌کننده نوع: از جمله قابلیت‌های دیگر این زبان آن است که می‌توان در فایلهای ایجاد شده با تایپ اسکریپت یا جاوا اسکریپت به جستجو پرداخته و درک صحیحی از ساختار کدها ( توابع، متغیرها و …) بدست آورد. در نهایت به شما در مورد نقایص و موارد نادرست اخطار دهد.
  • کامپایلر: کامپایلر4compiler در این زبان به بررسی انواع درون کدها پرداخته، خطاهای احتمالی را گزارش می‌دهد. در نهایت کد جاوا اسکریپت معادل را نیز در اختیار شما قرار می‌دهد.
  • خدمات زبان: از دیگر قابلیت‌های تایپ اسکریپت آن است که می‌تواند با ویرایشگرهای کد مانند VS code ادغام شود و امکانات مناسبی را در زمینه خطاهای برنامه‌نویسی در اختیار توسعه‌دهنده بگذارد.

ویژگی‌های زبان تایپ اسکریپت چیست؟

در بخش قبل به شکل خلاصه به برخی ویژگی‌های تایپ اسکریپت اشاره کردیم. در این قسمت از مقاله سعی داریم بیشتر شما را با این ویژگی‌ها آشنا کنیم. برخی از این ویژگی‌ها نقاط ضعف جاوا اسکریپت را پوشش می‌دهند.

ابزارهای مناسب برای توسعه‌دهندگان

معمولاً برنامه‌نویس‌ها و توسعه‌دهندگان از ویرایشگرهای کد مانند VS code استفاده می‌کنند. اینگونه ویرایشگرها سازگاری خوبی با تایپ اسکریپت دارند. پیشنهادهای مناسبی را هنگام کدنویسی در اختیار برنامه نویس می‌گذارند تا بهتر بتواند به کار خود بپردازد.

مثلاً فرض کنید در حال برنامه‌نویسی در VS code هستید و قصد دارید اعضای یک پارامتر از جنس رشته5string را در کد خود اعمال کنید (منظور توابع یا المانهایی است که در زبان جاوا اسکریپت می‌توان بر روی متغیرهای رشته‌ای اعمال کرد). در چنین حالتی تایپ اسکریپت به کمک قابلیت‌های این ویرایشگر، تمامی گزینه‌های ممکن را به شما پیشنهاد می‌دهد. در اصطلاح به چنین فرآیندی auto completions گفته می‌شود.

تصویر auto-completions در VS-code

مستندسازی مناسب کدها

برای اینکه به یکی دیگر از مزیت‌ها و ویژگی‌های تایپ اسکریپت اشاره کنیم، قطعه کد زیر را در نظر بگیرید:

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 مقدماتی یا پیشرفته ضروری است، یادگیری تایپ اسکریپت و سایر زبان‌های برنامه‌نویسی نیز نیازمند چنین تلاشی هستند.

پاورقی:

  • 1
    open sourced
  • 2
    Andres Hejlsberg
  • 3
    Types
  • 4
    compiler
  • 5
    string
در صورتی که از خواندن مقاله فوق لذت برده‌اید، احتمالا مطالب کتاب های زیر نیز می تواند برای شما مفید باشد. توصیه لرن بلاگ آن است که چنین کتاب هایی را تهیه کرده یا در صورت وجود نسخه آنلاین، به مطالعه آنلاین آنها بپردازید: