TypeScript چیست؟

بررسی کامل TypeScript و مقایسه با JavaScript

دسته بندی

آخرین آپدیت

1400/06/01

زمان خواندن

10 دقیقه

پیمان احمدی هستم موسس سایت تیک پارس،در زمینه طراحی و برنامه نویسی سایت و اپلیکیشن فعالیت دارم

جدیدترین مقاله سایت

دسته بندی

آخرین آپدیت

1400/06/01

زمان خواندن

10 دقیقه

TypeScript چیست؟

TypeScript چیست؟ TypeScript در مقابل JavaScript

 

"TypeScript مانند جاوا اسکریپت است اما هیچ شگفتی ندارد." اینگونه است که اغلب توسعه دهندگان زبان برنامه نویسی منبع باز را معرفی می کنند که در سال 2012 توسط مایکروسافت معرفی شد. طبق گفته GitHub ، در مورد سال 2020 ، خویشاوند نزدیک JS در بین ده زبان برنامه نویسی مورد درخواست قرار دارد. در این مقاله ، ما محبوبیت TypeScript و عواملی را که باعث جذابیت کمتر آن در نظر مهندسان و مشاغل می شود بررسی می کنیم.


از لحاظ فنی ، TypeScript یک نوع جاوا اسکریپت است ، زبان شماره یک برای سالهای متوالی. JS برای اولین بار در سال 1995 ارائه شد ، تعامل را به وب سایت های قبلی بی جان آورد و چشم انداز توسعه را به طور کامل تغییر داد. در حال حاضر ، 95 درصد وب سایت ها از JavaScript در سمت سرویس گیرنده استفاده می کنند و بسیاری از آنها JS را در پشت سر نیز اجرا می کنند. همچنین برای توسعه برنامه های تلفن همراه استفاده می شود.

با وجود محبوبیت ، JS بدون اشکال ارائه نمی شود. نگرانی اصلی این است که این زبان در ابتدا برای ایجاد برنامه های کاربردی در سطح سازمان مورد استفاده قرار نگرفته است. و اینجاست که TypeScript از لحاظ نحو و معناشناسی وارد عمل می شود. تعدادی ابزار اضافی را به ارمغان می آورد که بهره وری را افزایش داده و ایجاد پایگاه های بزرگ کد را تسهیل می کند.

به همین دلیل ، گوگل TS را برای ساخت Angular ، با هدف برنامه های کاربردی در مقیاس بزرگ ، انتخاب کرد و آن را به زبان اصلی توسعه برنامه های Angular تبدیل کرد. راه حل مایکروسافت همچنین با همه کتابخانه ها و چارچوب های JS سازگار است و می تواند برای ایجاد نرم افزاری با React ، Vue یا هر فناوری دیگر در اکوسیستم JS استفاده شود. بر اساس نظرسنجی توسعه دهندگان 2019 توسط Stack Overflow ، این تطبیق پذیری همراه با ابزار عالی TS را به یکی از محبوب ترین زبان ها تبدیل می کند.

طبق نظرسنجی که در سایت استک اور فلو  انجام شده 

میزان رشد زبان TypeScript نسبت به زبان های برنامه نویسی یا طراحی سایت بازده بیشتری داشته است و این محبوبیت را بین برنامه نویسان ایجاد کرده است 

ولی در صدر این لیست زبان جاوا اسکریپت و بعد از آن پایتون را میبینیم 

از آنجا که مرورگرها در حال حاضر قادر به خواندن کد TypeScript نیستند ، قبل از انتشار باید به جاوا اسکریپت ساده تبدیل شود. پس از انتقال خودکار-فرایند ترجمه یک زبان سطح بالا به زبان دیگر-کد را می توان در هر مرورگر یا سروری مجهز به موتورهای جاوا اسکریپت اجرا کرد. دومی ، به نوبه خود ، JS را به کد سطح ماشین کامپایل می کند.

دو راه سریع برای شروع کار با TS وجود دارد که توسط وب سایت رسمی آن پیشنهاد شده است:

  • از طریق NPM - مدیر بسته Node.js یا با نصب افزونه ها برای Visual Studio ، یک IDE کامل از مایکروسافت.
  •  

آموزش های زیر به شما کمک می کند تا عمیق تر وارد TypeScript شوید و نحوه استفاده از آن را بیاموزید.

 

  • مروری - توصیف همه نسخه های موجود TS (تا نسخه 3.7)
  • مهاجرت از جاوا اسکریپت - سندی که به شما آموزش می دهد چگونه فایل های JS را به فایل های TS تبدیل کنید
  • React & Webpack - مقدمه ای کوتاه برای همکاری TS با React و webpack
  • کتابچه راهنما - آموزش هایی که همه مفاهیم اساسی TS ، از جمله انواع ، اعلان های متغیر ، کلاس ها ، توابع ، عمومی ، enums و غیره را پوشش می دهد.

 

  • فایل های اعلامیه-یک راهنمای جامع برای نوشتن یک فایل اعلامیه TypeScript با کیفیت بالا
  • پیکربندی پروژه - راهنماهایی که به سوالات مربوط به تدوین و ادغام با ابزارهای ساخت مانند Babel ، Browserify ، Grunt و دیگران پاسخ می دهد.

با در نظر گرفتن موارد فوق ، بیایید مزایای ارائه شده توسط TypeScript را با جزئیات بیشتری بررسی کنیم.

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

جنبه های TypeScript بیشتر مورد علاقه توسعه دهندگان است
جنبه های TypeScript بیشتر مورد علاقه توسعه دهندگان است. منبع: وضعیت جاوا اسکریپت ، 2018

1. تایپ اختیاری استاتیک


جاوا اسکریپت یک زبان تایپ شده پویا است به این معنی که انواع آن بررسی می شوند و خطاهای نوع داده فقط در زمان اجرا مشاهده می شوند. چک کردن نوع اجرا به خودی خود یک نقطه ضعف نیست: انعطاف پذیری بیشتری را ارائه می دهد و اجزای برنامه را قادر می سازد تا به سرعت سازگار و تغییر کنند. اما هرچه پروژه و تیم بزرگتر باشد ، متغیرهای تعریف نشده بیشتری اضافه می شوند و اشتباهات بالقوه بیشتری در کد جمع می شود.

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

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

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

2. اشکالات اولیه


محققان دریافتند TypeScript 15 درصد از اشکالات رایج را در مرحله کامپایل تشخیص می دهد. این مقدار به دور از نتیجه 100 درصدی ، هنوز به اندازه کافی قابل توجه است تا در وقت توسعه دهندگان صرفه جویی کرده و به آنها اجازه دهد تا بر روی اشتباهات منطقی تمرکز کنند - نه این که اشکالات رایج را برطرف کنند. فشار دادن کد از طریق کامپایلر همچنین حجم تضمین کیفیت و فعالیت های آزمایش را کاهش می دهد.

قابل پیش بینی بودن
با TypeScript ، همه چیز همانطور که در ابتدا تعریف شده بود باقی می ماند. اگر یک متغیر به عنوان یک رشته اعلام شود ، همیشه یک رشته خواهد بود و به یک بولی تبدیل نمی شود. این کار احتمال عملکرد توابع را همانطور که در ابتدا در نظر گرفته شده بود افزایش می دهد.

3. خوانایی
با توجه به افزودن انواع دقیق و سایر عناصر که کد را بیشتر بیان می کند (اصطلاحاً قند نحوی) ، می توانید قصد طراحی توسعه دهندگانی را که در اصل کد را نوشته اند مشاهده کنید. این امر به ویژه برای تیم های توزیع شده که روی یک پروژه کار می کنند بسیار مهم است. کدی که به خودی خود صحبت می کند می تواند عدم ارتباط مستقیم بین اعضای تیم را جبران کند.

4. پشتیبانی غنی از IDE


اطلاعات مربوط به انواع ویرایشگرها و محیط توسعه یکپارچه (IDE) بسیار مفیدتر است. آنها می توانند ویژگی هایی مانند ناوبری کد و تکمیل خودکار را ارائه دهند و پیشنهادات دقیقی ارائه دهند. هنگام تایپ کردن نیز بازخورد دریافت می کنید: ویرایشگر خطاها ، از جمله مربوط به نوع را به محض وقوع نشان می دهد. همه اینها به شما کمک می کند کد قابل نگهداری بنویسید و منجر به افزایش بهره وری قابل توجهی می شود.


با وجود Microsoft Visual Studio به عنوان محبوب ترین و طبیعی ترین محیط برای اجرای TypeScript ، توسط بسیاری از IDE های دیگر از جمله

  • WebStorm ، IDE جاوا اسکریپت هوشمند ؛
  • Eclipse ، یک IDE یکپارچه که افزونه ای برای توسعه TS ارائه می دهد.
  • Visual Studio Code ، یک ویرایشگر سبک وزن بین پلتفرم توسط مایکروسافت ؛
  • Atom ، یک ویرایشگر متن بین پلت فرم ؛ و
  • CATS ، یک محیط توسعه منبع باز TypeScript.

بازسازی سریع


تغییر شکل یا به روزرسانی برنامه بدون تغییر رفتار آن ، برای استحکام و نگهداری پایگاه داده ضروری است. TypeScript این روند مهم را کمتر دردناک می کند. با توجه به اینکه IDE ها در مورد کد شما اطلاعات زیادی دارند ، شما به ابزارهای ناوبری مانند "پیدا کردن همه مرجع" یا "رفتن به تعریف" مجهز شده اید.

علاوه بر این ، بسیاری از اشتباهات به طور خودکار مشاهده می شوند. به عنوان مثال ، اگر نام یک عملکرد را تغییر دهید و بعداً فراموش کنید نام آن را در جایی تغییر دهید ، TS به شما در مورد این مشکل هشدار می دهد. این امر بازسازی را ساده و تسریع می کند ، این امر به ویژه هنگامی که با بخش های بزرگی از کدها سروکار دارید مفید است.

قدرت OOP

TypeScript مفاهیم برنامه نویسی شی گرا مبتنی بر کلاس (OOP) مانند کلاس ها ، رابط ها ، وراثت و موارد دیگر را پشتیبانی می کند. پارادایم OOP ایجاد کد مقیاس پذیر سازماندهی شده را آسان می کند و این مزیت با بزرگ شدن و پیچیدگی پروژه شما آشکارتر می شود.

سازگاری بین پلت فرم و مرورگرهای مختلف


هر دستگاه ، پلتفرم یا مرورگری که جاوا اسکریپت را اجرا می کند ، با TypeScript نیز کار می کند - پس از اینکه کامپایلر آن را به وانیل JS ترجمه کرد. معمولاً IDE ها و ویرایشگرهایی که از TypeScript پشتیبانی می کنند دارای یک کامپایلر داخلی TS (tsc) هستند که می تواند از خط فرمان فراخوانی شود. TS اجازه می دهد تا قسمتی از پایگاه کد یا کل برنامه را به طور همزمان با افزودن یک فایل پیکربندی به نام tsconfig.json به فهرست اصلی مناسب تبدیل کنید.

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


تعداد توسعه دهندگان جاوا اسکریپت به 11.4 میلیون نفر می رسد - تقریباً دو برابر تعداد مهندسان که از جاوا یا پایتون استفاده می کنند. البته همه آنها TypeScript را نمی شناسند. اما از آنجا که TS بر نحو و معناشناسی JS متکی است ، منحنی یادگیری برای توسعه دهندگان JS یکنواخت خواهد بود. در مجموع ، شرکت هایی که به TS روی می آورند به سختی با کمبود استعداد روبرو خواهند شد.

 

پشتیبانی از دنیای فناوری


TypeScript یک زبان منبع باز با جامعه ای پیوسته در حال رشد است. این واقعیت که میلیون ها توسعه دهنده آن را دوست دارند و مایکروسافت از آن پشتیبانی می کند ، اطمینان می دهد که این فناوری کنار گذاشته نمی شود و شما همیشه می توانید از جامعه گسترده TypeScript کمک بگیرید (و دریافت کنید!) بسیاری از محصولات نرم افزاری محبوب - مانند Asana و Slack - برای مدیریت و نگهداری پایگاه های کد بزرگ خود به TypeScript تغییر یافتند.

TypeScript منفی: چه مشکلاتی ایجاد می کند

هیچ چیز کامل در این دنیا وجود ندارد و TypeScript نیز از این قاعده مستثنی نیست. در بیشتر موارد ، نقاط ضعف آن از نقاط قوت خود ناشی می شود.
 


تایپ کردن استاتیک واقعی نیست


توسعه دهندگان مسلط به C#، C ++ یا جاوا اغلب استدلال می کنند که TypeScript یک زبان تایپ واقعی نیست. صرف نظر از این که این ویژگی برای TS اختیاری است ، در نهایت به جاوا اسکریپت بدون تایپ منتقل می شود ، بنابراین همیشه خطر تبدیل نوع عجیب و غریب در زمان اجرا وجود دارد.

جاوا اسکریپت برای یادگیری

در بخش قبل ما پذیرفتیم که یادگیری TS برای توسعه دهندگان JS بسیار آسان خواهد بود. با این حال ، با وجود این شباهت ، آنها هنوز نیاز به صرف زمان و تلاش برای انواع یادگیری و برخی از سازه های اختصاصی TS دارند. بنابراین ، اگر شرکت شما قصد دارد به TypeScript برود و JS devs داشته باشد و هیچ تجربه قبلی در زمینه TS نداشته باشد ، آنها فوراً به بهره وری 100٪ نمی رسند.

کد پف کرده


خوانایی کد افزایش یافته توسط قند نحوی که قبلاً ذکر شد و حاشیه نویسی های نوع ، دارای جنبه های منفی است. اول ، شما باید کد بیشتری بنویسید و این پتانسیل کند کردن روند توسعه را دارد. دوم ، حاشیه نویسی های اضافی باعث می شود فایل های TS بزرگتر از مواردی باشند که در JS ساده نوشته شده اند. تفاوت تعداد خطوط کد به عوامل متعددی بستگی دارد. خوبی این است که همه این ویژگی های اضافی پس از انتقال ناپدید می شوند. در پایان ، مرورگر جاوا اسکریپت ساده را اجرا می کند.

افزودن مرحله اضافی - انتقال


همانطور که قبلاً نوشتیم ، مرورگرها نمی توانند کد TypeScript را تفسیر کنند ، بنابراین قبل از اجرا باید آن را به جاوا اسکریپت منتقل کنید. با این حال ، این فرایند بسیار خودکار است و به زمان زیادی نیاز ندارد. در مجموع ، جنبه منفی این مرحله بسیار کمتر از مزایای آن است: کامپایلر قبل از اینکه بتواند باعث آسیب شود ، نقص ها را تشخیص داده و آنها را پرچم گذاری می کند.

مدام بهتر می شود


TypeScript همچنان در حال تکامل است و نسخه 3.8 آن به زودی عرضه می شود. در زمان نگارش این مقاله ، نامزد انتشار قبلاً در دسترس بود و نسخه تولیدی با همان مجموعه ارتقاء همراه با برخی از رفع اشکالات مهم همراه خواهد بود. بنابراین ، نسخه جدید چه پیشرفت های مهمی را به ارمغان می آورد؟

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

پشتیبانی از زمینه های خصوصی ECMAScript. ECMAScript یا به اختصار ES مشخصه ای است که قوانین و دستورالعمل های زبان برنامه نویسی را تعیین می کند و در هسته JS قرار دارد. در سال 2015 ، ES مفهوم کلاس را به جاوا اسکریپت معرفی کرد - به طور خلاصه ، این یک الگو است که نحوه عملکرد یک نوع (یا کلاس) خاص را مشخص می کند.

به طور پیش فرض ، کلاس های ES عمومی هستند ، به این معنی که می توان به آنها در خارج از کلاس دسترسی داشت و آنها را تغییر داد. پیاده سازی زمینه های خصوصی - اسلات داده ، فقط از داخل کلاس در دسترس است - برنامه نویسان را قادر می سازد تا نوعی پوشش محافظ ایجاد کنند ، جزئیات داخلی را پنهان کرده و از مداخلات ناخواسته جلوگیری کنند. این ویژگی قبلاً در Node.js 12 ، Chrome 74 و Babel پشتیبانی میشد.

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

 

 

نظرات کاربران


برای ارسال نظر ابتدا وارد حساب کاربری خود شوید