معرفی typescript

از زمان آغاز کار جاوااسکریپت، به ویژه در سال‌های اخیر رشد عظیمی داشته‌است.

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

این تقاضا برای عملکرد بالا، دسترس پذیری و JavaScript  قوی منجر به معرفی تایپ اسکریپ شد.

بیایید با جزئیات آنچه اهداف طراحی هستند را بررسی کنیم و مزایایی که استفاده از typescript در هر کدی، از یک پروژه فرعی تا یک پروژه بزرگ منجر می‌شود را بررسی کنیم.

TypeScript یک مجموعه بزرگ تر از JavaScript است

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

از آنجا که هر نسخه جدید از JavaScript نسخه قبلی را گسترش می دهد ، می توانیم به "آینده JavaScript" به عنوان یک نسخه استاندارد فعلی فکر کنیم. با در نظر گرفتن این مدل ، TypeScript ایجاد شد تا به عنوان بخشی از JavaScript عمل کند که آینده زبان را در اختیار توسعه دهندگان امروز قرار دهد. علاوه بر این ، TypeScript ویژگی هایی خارج از محدوده TC39 ، مانند بررسی نوع ، جنریک ها و رابط ها ، که بسیاری از نقاط ضعف موجود در جاوا اسکریپت را کاهش می دهد ، ایجاد می کند. تمام آنچه TypeScript به شما می دهد به لطف نحوی مناسب است که در نهایت همه به JavaScript متقابل تبدیل می شوند.

بیایید با جزئیات بیشتر در مورد معماری و مؤلفه های TypeScript کاوش کنیم تا فواید آن را عمیقا درک کنیم.

معماری TypeScript: اهداف طراحی

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

سازگاری جاوا اسکریپت با TypeScript

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

توجه داشته باشید که یک کد TypeScript معتبر یک کد JavaScript معتبر نیست. TypeScript حاوی نحو و انتزاعی است که در جاوا اسکریپت وجود ندارد و استفاده از آنها با JavaScript باعث ایجاد خطاهای زمان اجرا می شود. با این حال ، در تلاش برای ارتقاء سازگاری ، توسعه دهندگان TypeScript زبان را با پایپ لاین ECMAScript تراز می کنند. پیشنهادات ECMAScript فعلی و آینده در هنگام طراحی ویژگی های TypeScript جدید در نظر گرفته می شوند.

ارائه نوع بررسی به JavaScript

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

 

برای جلوگیری از این مشکلات زمان اجرا ، TypeScript به عنوان یک زبان قوی طراحی شده است که بررسی نوع به صورت استاتیک زمان کامپایل به جاوااسکریپت را انجام می دهد. برای انعطاف پذیری ، قابلیت بررسی نوع TypeScript اختیاری است. با این حال ، بسیاری از مزایای کلیدی TypeScript حول بررسی نوع می چرخد ​​- این دلیل اصلی استفاده از TypeScript است! به عنوان مثال ، بررسی نوع به شما امکان می دهد تا از لایه سرویس زبان استفاده شود تا بتواند از ابزارهای بهتری استفاده کند که در ضمن کاهش نمونه خطاها ، از بهره‌وری شما به حداکثر برسد.

برنامه نویسی شی گرا با قدرتمندتر JavaScript

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

سربار صفر

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

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

معماری TypeScript: کامپوننت ها

معماری TypeScript به طور مرتب در لایه های مختلف سازماندهی شده است.

زبان

کامپایلر هسته TypeScript

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

خود کامپایلر از قسمتهای مختلفی تشکیل شده است که سریع کار می کنند تا کد ما قابل پیش بینی و قابل کامپایل باشد:

پارسر

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

Binder

برای مثال ، وقتی یک تابع و یک ماژول هم نام نام داریم ، Binder اتصال بین آن ها را با استفاده از Symbol ایجاد می کند، و به سیستم نوع اجازه می دهد تا آنها را حس کند.

بررسی کننده نوع

این مؤلفه انواع مختلفی را برای هر ساختار حل می کند ، عملیات معنایی را بررسی می کند و تشخیص نوع را ایجاد می کند.

امیتر

خروجی از فایلهای .ts و d.ts تولید می کند. خروجی می تواند یک فایل JavaScript (.js) ، یک فایل تعریف TypeScript ، (d.ts) یا یک فایل نقشه منبع (.js.map) باشد.

پیش پردازنده

با استفاده از import یا /// \ منابع را در بین پرونده ها حل و مدیریت می کند.

خدمات زبان

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

ادغام ابزار

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

نتیجه

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

نظر شما

0 نظر

نظری ثبت نشده است