برنامه نویسی

تفاوت های تایپ اسکریپت و جاوا اسکریپت

تایپ اسکریپت دارای تفاوت های زیادی با زبان برنامه نویسی جاوا اسکریپت است. در این مطلب درباره تایپ اسکریپت و ویژگی های آن صحبت می کنیم.

تایپ اسکریپت یک زبان برنامه نویسی استاتیک است که موفق شده است تا خود را به عنوان یک افزونه جاوا اسکریپت به ثبت برساند. کدهای این زبان برنامه نویسی در واقع در جاوا اسکریپت کامپایل می شود و همین عامل نیز باعث می شود تا هم در سمت کلاینت( مرورگر) و هم در سمت سرور( Node.js) اجرا شود.

زبان برنامه نویسی تایپ اسکریپت

کامپایلر چند پلتفرم TypeScript یک کامپایلر بسیار سریع است که تحت لایسنس Apache در سراسر جهان توزیع شده است و هر دو ماه یک بار نیز یک نسخه جدید از آن منتشر می شود.

نکته بسیار مهمی که درباره این زبان برنامه نویسی وجود دارد این است که با وجود تداوم تولید نسخه های مختلف، این نسخه ها برای مدت زمان طولانی سازگار باقی می مانند و پس از مدت زمان طولانی منسوخ می شوند که این مسئله کار را برای توسعه دهندگان راحت تر می کند.

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

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

مزایای مهم تایپ اسکریپت

– نوع دهی قوی تایپ اسکریپت: همانطور که می دانید زبان برنامه نویسی جاوا اسکریپت یک زبان strongly typed نیست. تایپ اسکریپت یک قابلیت اختیاری static typing را به شما ارائه می دهد که در کنار سیستم استنتاج نوع داده می تواند از جمله مهمترین مزایای آن به شمار بیاید. این ویژگی باعث می شود تا شما نیازی به تعریف نوع متغیر خود نداشته باشید و نوع متغیر شما براساس مقداری که به آن اختصاص داده اید مشخص می شود.

– بهینه سازی شی گرایی: هم جاوا اسکریپت و هم تایپ اسکریپت از برنامه نویسی شی گرا پشتیبانی می کنند. بنابراین مفاهیمی از جمله نمونه، اشیا و وراثت در هر دو زبان برنامه نویسی قابل تعریف هستند. با این حال باید دقت داشته باشید که TypeScript یک گام فراتر برداشته است و قابلیت های شی گرایی بسیار زیادی را اضافه کرده است. از جمله مهمترین این قابلیت ها می توان به مواردی مانند تعریف فیلدها در کانستراکتور، تبدیل انواع داده، تعریف کلاس های انتزاعی و abstract و قابلیت Generalization اشاره کرد.

– این زبان برنامه نویسی یک زبان تفسیری است. بنابراین برای بررسی این که همه چیز در کدهایی که شما به این زبان نوشته اید به درستی کار می کنند باید به طور کامل اجرا شود. این به آن معناست که شما در زمان کدنویسی نمی توانید متوجه شوید که در بخش هایی از کدتان خطا وجود دارد. همین عامل نیز باعث می شود تا گاهی اوقات مجبور شوید ساعت های زیادی را صرف پیدا کردن خطاهای کد خود کنید. قابلیت transporter در این زبان برنامه نویسی به شما اجازه می دهد تا خطاهای خود را در زمان کدنویسی بررسی کنید. تایپ اسکریپت در صورت مواجه شدن با خطاهای مربوط به سینتکس ها اقدام به ایجاد خطاهای کامپایلر می کند. این مسئله نیز باعث می شود تا خطاهای شما قبل از اجرای کدها برجسته شده و به شما نمایش داده شوند.

کامپوننت ها و اجزای این زبان برنامه نویسی

تایپ اسکریپت به طور کلی دارای سه کامپوننت زیر می باشد:

– TypeScript Compiler: که به اختصار با TSC نیز شناخته می شود و دستورالعمل های نوشته شده در این زبان را به معادل آن در زبان برنامه نویسی جاوا اسکریپت تبدیل می کند.

– این زبان از annotations، syntax و keyword ها نیز پشتیبانی می کند.

– Language Service: این لایه از زبان برنامه نویسی تایپ اسکریپت در لایه بالایی کامپایلر قرار می گیرد و عملکردی که برای کار در IDE ها و ویرایشگرهای متن به آن نیاز دارید را برای شما فراهم می کند. از جمله مهمترین این عملکردها می توان به تکمیل خودکار کدها، برجسته سازی سینتکس، قالب بندی کد و طرح کلی کدها و … اشاره کرد. این سرویس همچنین قابلیت بازسازی کد را ارائه می دهد که امکان تغییر نام متغیر، اشکال زدایی و … را برای شما فراهم می کند.

اصول اولیه کار با این  زبان برنامه نویسی

حال که با مزایا و ویژگی های مهم این زبان برنامه نویسی آشنا شدیم اجازه دهید تا کمی بیشتر درباره اصول اولیه آن صحبت کنیم و نحوه کار با این زبان برنامه نویسی را به شکل بهتری درک کنیم.

متغیرها و ثوابت 

شما می توانید از کلمه کلیدی var برای تعریف متغیرها استفاده کنید که این مسئله دقیقا مشابه زبان برنامه نویسی جاوا اسکریپت است. روش دیگری که برای تعریف متغیرها در زبان برنامه نویسی تایپ اسکریپت وجود دارد استفاده از کلمه کلیدی let است که از نسخه ES 2015 به جاوا اسکریپت اضافه شده است.

مقاله‌های مرتبط:

در زبان برنامه نویسی تایپ اسکریپت استفاده از کلمه کلیدی let برای تعریف متغیرها ترجیح داده می شود چرا که از برخی از مشکلات مرتبط با تعریف متغیرها جلوگیری می کند. با استفاده از کلمه کلیدی var شما می توانید یک متغیر را دو بار یا بیشتر با همان نام تعریف کنید.

var x = "hi"
console.log(x);
var x = "do";
console.log(x);

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

let x = "hi";
console.log(x);
let x = "do"; // an error, variable x is already declared
console.log(x);

علاوه بر متغیرها باید دقت داشته باشید که این زبان برنامه نویسی دارای ثابت هایی می باشد که شما می توانید تنها یک بار آنها را مقدار دهی کنید. کلمه کلیدی const برای ساخت این ثابت ها مورد استفاده قرار می گیرد و شما می توانید برای انجام این کار به شکل زیر عمل کنید:

const y = 1;
y = 2; // an error, you cannot change the value of the constant y

اصلاح کننده های دسترسی در تایپ اسکریپت

اصلاح کننده های دسترسی به شما اجازه می دهند تا وضعیت یک شی را به شکلی تنظیم کنید که از خارج کلاس نتوان به آن دسترسی پیدا کرد و به این ترتیب نحوه دسترسی به آن شی را به طور کامل کنترل کنید. در حال حاضر سه نوع اصلاح کننده در تایپ اسکریپت وجود دارند که به ترتیب شامل public، protected و private می باشد.

اگر هیچ اصلاح کننده دسترسی را اختصاص ندهید به صورت پیش فرض در این زبان برنامه نویسی اصلاح کننده public برای تمامی ویژگی ها و متغیرها در نظر گرفته می شود.

دقت داشته باشید که متغیرها و عناصری که اصلاح کننده private به آنها اختصاص داده شده است تنها از داخل کلاسی که در آن تعریف شده اند قابل دسترسی خواهند بود.

class Person { 
  private name: string;
  constructor(name: string) {
    this.name= name;
  }
  public print(): void {
    console.log(`Name: ${this.name}`);// cannot be accessed, cause name is private
  }
}
let bob = new Person("Bob");
bob.print();

در این قطعه کد ویژگی name از یک اصلاح کننده private استفاده می کند بنابراین ما نمی توانیم از خارج کلاس به آن دسترسی پیدا کرده و از آن استفاده کنیم. protected نوع دیگری از اصلاح کننده ها است که با اختصاص دادن آن به ویژگی ها و متغیرها نه تنها از کلاسی که داخل آن تعریف شده اند می توانید به این عناصر دسترسی پیدا کنید بلکه از کلاس هایی که از این کلاس به ارث برده اند نیز امکان دسترسی به آن عناصر برای شما وجود دارد.

آشنایی با آرایه ها

آرایه ها در تایپ اسکریپت با استفاده از عبارت [] تعریف می شوند و البته باید دقت داشته باشید که strongly typed هستند. این به آن معناست که اگر در ابتدا یک آرایه تنها شامل رشته ها باشد در آینده نیز شما تنها می توانید از مقادیر رشته ای در داخل این آرایه استفاده کنید.

آرایه های Readonly در تایپ اسکریپت

تایپ اسکریپت به شما اجازه می دهد تا آرایه هایی را ایجاد کنید که عناصر آنها قابل تغییر نیستند. برای انجام این کار شما می توانید از نوع ReadonlyArray<> استفاده کنید که نوع عناصری که داخل آرایه قرار می گیرند نیز در داخل <> مشخص می شوند.

برخلاف نوع Array در نوع ReadonlyArray ما نمی توانیم یک کانستراکتور را بپذیریم. در عوض باید مقادیر را به عنوان یک آرایه معمولی ارسال کنید.

const colors: ReadonlyArray = ["Green", "Red"];

آشنایی با Tuple ها

با استفاده از نوع داده ای tuple شما می توانید آرایه ای با طول مشخص را بسازید و همین طور نوع داده ای مشخصی را نیز برای عناصر آن تعیین کنید. در زمان بازیابی یک عنصر از چنین آرایه ای زبان برنامه نویسی تایپ اسکریپت نوع آن را به صورت پیش فرض بر اساس چیزی که شما مشخص کرده اید تعیین می کند.

شاید برای شما جالب باشد که بدانید برخلاف آرایه ها tuple ها می توانند مقادیر مختلف را ذخیره کنند. سینتکسی که برای تعریف کرده یک tuple مورد استفاده قرار می گیرد به شکل زیر است:

let user: [string, number]; // consists of a string and a number

توابع در تایپ اسکریپت

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

function add(x: number, y: number){
let addition = x + y;
console.log(addition);
 }

اشیا در تایپ اسکریپت

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

با وجود این که این شی در واقع همان شیئی است که در جاوا اسکریپت مورد استفاده قرار می دهیم ولی در تایپ اسکریپت محدودیت هایی را برای استفاده از آن داریم. به عنوان مثال قطعه کد زیر را در نظر بگیرید:

let cat = { name: "Bob", age: 4};
cat = { name: "Alex" };  // Error

TypeScript به شما اجازه می دهد تا بتوانید ویژگی ها را به صورت اختیاری استفاده کنید. برای انجام این کار پس از مشخص کردن نام ویژگی باید از ” ? ” استفاده کنید.

let cat : { name?: string; age: number }; // The name property is optional

نتیجه گیری

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوشته های مشابه

دکمه بازگشت به بالا