با گسترش روز افزون زبان برنامه نویسی Javascript و استفاده هر چه بیشتر آن در تولید برنامههای تحت وب این زبان به یکی از قدرتهای بزرگ در تولید برنامههای مبتنی بر وب تبدیل شده است. ترکیب این زبان با Css و Html5 تقریبا هر گونه نیاز برای تهیه و توسعه برنامههای وب را حل کرده است. جاوا اسکریپت در ابتدا برای اسکریپت نویسی سمت کلاینت برای صفحات وب ایجاد شد و برای سالها بهعنوان ابزاری برای مدیریت کردن رویدادهای صفحات وب محدود شده بود و در نتیجه بسیاری از امکانات لازم برای برنامهنویسی برنامههای مقیاس بزرگ را بههمراه نداشت. امروزه به قدری Javascript توسعه داده شده است که حتی در تولید برنامههای Native مانند Windows Store و برنامههای تحت Cloud نیز استفاده میشود. پیشرفتهای صورت گرفته و اشاره شده در این حوزه موجب شد تا شاهد پیداش برنامههای مبتنی بر جاوا اسکریپت با سایزهای بی سابقهای باشیم و این بیانگر این بود که تولید برنامههای مبتنی بر جاوا اسکریپت در مقیاسهای بزرگ امر دشواری است و اینک TypeScript توسط غول نرم افزاری جهان (Microsoft) پا به عرصه گذاشته که این فرآیند را آسانتر نماید. به کمک TypeScript میتوان برنامه تحت JavaScript در مقیاس بزرگ تولید کرد به طوری با هر مرورگر و سیستم عاملی سازگار باشد. TypeScript از شی گرایی نیز پشتیبانی میکند و خروجی آن در نهایت به JavaScript کامپایل میشود. خیلیها عقیده دارند که هدف اصلی مایکروسافت از تولید و توسعه این زبان رقابت با CoffeeScript است. CoffeeScript یک زبان متن باز است که در سال 2009 توسط Jeremy Ashkenas ایجاد شده است و سورس آن در GitHub موجود میباشد. در آینده، بیشتر به مباحث مربوط به CoffeeScript و آموزش آن خواهم پرداخت.
با TypeScript چه چیزهایی به دست خواهیم آورد؟
یک نکته مهم این است که این زبان به خوبی در Visual Studio پشتیبانی میشود و قابلیت Intellisense نوشتن برنامه به این زبان را دلپذیرتر خواهد کرد و از طرفی دیگر یکی از مهمترین مزیت هایی که TypeScript در اختیار ما قرار میدهد این است که میتوانیم به صورت Syntax آشنای شی گرایی کد نویسی کنیم و خیلی راحتتر کدهای خود را سازمان دهی کرده و از نوشتن کدهای تکراری اجتناب کنیم.
یکی دیگر از مزیتهای مهم این زبان این است که این زبان از Static Typing به خوبی پشتیبانی میکند. این بدین معنی است که شما ابتدا باید متغیرها را تعریف کرده و نوع آنها را مشخص نمایید و هم چنین در هنگام پاس دادن مقادیر به پارامترهای توابع باید حتما به نوع داده ای آنها دقت داشته باشید چون کامپایلر بین انواع داده ای در TypeScript تمایز قایل است و در صورت رعایت نکردن این مورد شما با خطا مواجه خواهید شد. این تمایز قایل شدن باعث میشود که برنامه هایی خواناتر داشته باشیم از طرفی باعث میشود که خطا یابی و نوشتن تست برای برنامه راحتتر و تمیزتر باشد. بر خلاف JavaScript، در TypeScript(به دلیل پشتیبانی از شی گرایی) میتوانیم علاوه بر داشتن کلاس، اینترفیس نیز داشته باشیم و در حال حاضر مزایای استفاده از اینترفیس بر کسی پوشیده نیست.
به دلیل اینکه کدهای TypeScript ابتدا کامپایل شده و بعد تبدیل به کدهای JavaScript میشوند در نتیجه قبل از رسیدن به مرحله اجرای پروژه، ما از خطاهای موجود در کد خود مطلع خواهیم شد.
البته این نکته را نیز فراموش نخواهیم کرد که این زبان تازه متولد شده است (سال 2012 توسط Anders Hejlsberg) و همچنان در حال توسعه است و این در حال حاضر مهمترین عیب این زبان میتواند باشد چون هنوز به پختگی سایر زبانهای اسکریپتی در نیامده است.
برای نمونه به قطعه نوشته شده با TypeScript توجه فرمایید:
توجه کنید که در این قطعه کد بالا از امکاناتی از جمله class و Constructor استفاده شده است که این کد ها در انتها با معادل آن در JavaScript جایگزین خواهند شد.
کدهای تولید شده در تمامی مرور گرها قابل اجرا هستند و با توجه به پیشرفت روز افزون دنیای وب و زبان جاوا اسکریپت، در آینده ای نزدیک امکانات TypeScript به این زبان نیز راه پیدا می کنند، که در نتیجه از کد های TypeScript می توان خروجی های مختلفی برای نسخه های مختلف جاوا اسکریپت، در مرورگرهایی که این امکانات را پیشتیبانی می کنند، تهیه کرد.
TypeScript مجموعه ای عظیم از امکانات را در اختیار ما قرار می دهد، که همه این امکانات به همراه Intellisense فوق العاده آن در محیط Visual Studio همراه شده است. موارد زیر را می توان زیر را برترین امکانات آن نام برد:
1. Classes
2. Types
3. Generics
4. Modules
5. Compile-time Type Checking
جهت دریافت اطلاعات بیشتر و دانلود کتاب آموزشی می توانید به لینک زیر در سایت شرکت داده پردازی فراتک مراجعه کنید:
http://www.faratechdp.com/TypeScript.aspx
نویسنده: واحد تحقیق و توسعه شرکت داده پردازی فراتک FaratechDP.com
منابع:
1. سایت رسمی TypeScript http://www.typescriptlang.org
2. وبلاگ صفر و یک http://mazizi.blog.ir
3. کتاب TypeScript Language Specification Version 1.0