کدنویسی بدون خطا با TypeScript رویایی یا واقعیت؟
رویه های مناسب کدنویسی تایپ اسکریپت راهنمای کاربردی فرادرس مجله
این زبان با ارائه تایپ استاتیک و ابزارهای توسعه قدرتمند، تجربه برنامهنویسی را بهبود میبخشد و به توسعهدهندگان کمک میکند تا کدهای بهتری بنویسند. با افزایش محبوبیت آن، یادگیری و استفاده از این زبان میتواند به شما در توسعه پروژههای مختلف کمک کند و مهارتهای برنامهنویسی شما را به سطح بالاتری برساند. به محض اینکه کد را به این شکل تغییر دهیم تمام خطاها از بین می رود. حالا دوباره دستور tsc using-ts.ts را اجرا می کنم و این بار فایل جاوا اسکریپت بدون خطا به من تحویل داده می شود. تایپ اسکریپت قابلیتهایی را در اختیار ما قرار میدهد که موجب میشود بتوانیم ذهنیتی پیشدستانه داشته باشیم. ما این امکان را پیدا میکنیم که کد خود را به صورت صریح حاشیهنویسی و اطلاعات مورد نیاز برای نوعبندی استاتیک را عرضه کنیم و در نتیجه تجربه توسعه بهبود مییابد.
کامپایلر میاد هر کدی که مختص نوع هاست و توی جاوا اسکریپت وجود نداره رو حذف میکنه. این کد ها و تعاریف فقط برای سیستم بررسی نوع کاربرد دارن و روی اجرای کد تاثیری ندارن، پس حذفشون روی عملکرد کد هیچ تاثیری نداره. این امر در زمان نوشتن کدهای جاوا اسکریپت که قابلیت استفاده مجدد داشته باشند، ناگزیر است. بدین ترتیب کدبیس پایدارتری ایجاد میشود که باگهای کمتری به جهت خطاهای مرتبط با نوع دارد، چون بررسیهای نوع قویتری اجرا میشود که در زمان کامپایل در اختیار ما قرار گرفتهاند. آخرین نسخه typescript در زمان نگارش این مقاله، در تاریخ 21 نوامبر سال 2021 میلادی ارائه شده که نسخه 4.5.2 می باشد.
طبیعتا هر زبان برنامه نویسی از یکسری مزایای مخصوص به خود برخوردار میباشد که ما را ترغیب به استفاده از آن کند. در ادامه به بررسی مزایای زبان برنامه نویسی Type Script میپردازیم. البته از دیدگاه ما در راکت یادگیری تایپ اسکریپت برای برنامهنویسان جاوا اسکریپت الزامیست. به اولین جلسه از دوره رایگان آموزش صفر تا صد تایپ اسکریپت خوش آمدید! در این دوره، سعی کرده ایم در 78 درس (جلسه)، تمامی مباحث تایپ اسکریپت را به زبانی کاملا ساده و قابل درک از مقدماتی تا پیشرفته توضیح دهیم. سایر درس های این سری آموزشی را می توانید در قسمت پائین همین مقاله مشاهده کنید.
Typescript یک ابرمجموعه نوعبندی شده از جاوا اسکریپت و هدف آن تسهیل توسعه اپلیکیشنهای بزرگ جاوا اسکریپت است. نوشتن کدهای بهتر تایپ اسکریپت نیازمند درک مقصود این زبان، بازنگری رویکرد کدنویسی، اجتناب از رویهها نامناسب رایج و بهرهگیری از قابلیتهای تایپ اسکریپت است. در این مقاله با روشهای مختلف برای بهبود کدهای تایپ اسکریپت آشنا خواهیم شد و رویه های مناسب کدنویسی تایپ اسکریپت را مرور خواهیم کرد. یکی از جذابترین تکنولوژیهایی که وارد دنیای توسعه وب شده است زبان برنامه نویسی Typescript است. البته اگرچه به خوبی میتواند با جاوا اسکریپت و فریمورک های آن ادغام شود اما هنوز به صورت گسترده مورد توسط همه برنامهنویسان مورد استفاده قرار نگرفته است. هر چند شرکتهای بزرگی مانند گوگل، فیسبوک و توییتر استفاده از آن را بشدت پیشنهاد میدهند.
برای یادگیری تایپ اسکریپت در ابتدا نیاز است که به خوبی با جاوا اسکریپت آشنایی داشته باشید و بعد از آن سراغ یادگیری تایپ اسکریپت بروید. در نتیجه اگر قصد دارید به صورت قدم به قدم پیش بروید، دورههای آموزشی زیر را مشاهده کنید. تایپ اسکریپت فرایند یادگیری بسیار سادهای داشته و نیازمند دوره های آموزشی طولانی نیست. برای یادگیری تایپ اسکریپت ابتدا نیاز دارید که به خوبی با جاوا اسکریپت آشنایی داشته باشید. در این صورت قابلیت آن را خواهید داشت که با درک بهتری سراغ یادگیری تایپ اسکریپت رفته و از آن استفاده کنید.
هنوز بسیاری از شکرتها و توسعه دهندگان با جاوا اسکریپت خام مشکلی ندارند و به لطف اکما اسکریپت بسیاری از مشکلات آنها حل شده و به طبع دیگر نیازی به استفاده از تایپ اسکریپت ندارند. اگرچه این زبان محبوبیت زیادی پیدا کرده است ولی همچنان در ایران بازار کمی دارد. این دوره آموزشی برای تمامی افرادی آماده شده است که هیچ اطلاعی در رابطه با زبان TypeScript ندارند و میخواهند مفاهیم مربوط به آن را از ابتدا فرا بگیرند. دوره آموزشی پیش رو می تواند به شما برای درک مباحث مربوط به زبان TypeScript کمک کند تا پس از آن بتوانید کار خود را با آموزش شروع به کار با تایپ اسکریپت TypeScript ادامه بدهید. این قابلیت به توسعهدهندگان اجازه میدهد مجموعههایی از مقادیر ثابت را تعریف کنند. این ویژگی برای نمایندگی و مدیریت مجموعههای محدودی از مقادیر به طور خوانایی بیشتر و با امنیت نوع بالاتر مفید است.
در واقع می توان گفت زبان typescript همان جاوا اسکریپت است که بیشتر توسعه داده شده و پیشرفته تر است بنابراین یک زبان جدید محسوب نمی شود. TypeScript به صورت کامل از مفهوم کلاس پشتیبانی میکند، که شامل ارثبری، سازندهها، متدها، خواص و مدیفایرهای دسترسی مانند public, private, و protected میشود. این قابلیت امکان تعریف ساختارهای دادهای پیچیده و سازماندهی بهتر کد را فراهم میآورد. تایپ اسکریپت می گوید شاید مقدار value برای عنصری که دریافت کرده ایم وجود نداشته باشد. در بعضی از عناصر html مقدار value وجود دارد (مثلا input ها) اما تمام عناصر html دارای value نیستند و این کد به طور صریح این موضوع را مشخص نکرده است.
در این مقاله، مفاهیم اولیه درباره انواع دادهها در تایپ اسکریپت را با هم خواندیم. اگر تایپاسکریپت را یاد بگیرید، میتوانید کدهای خواناتر و بدون خطا بنویسید. TSLINT یک linter استاندارد برای تایپاسکریپت است و به نوشتن کدهای تمیز، قابل نگهداری و خوانا کمک میکند. آن را میتوانیم با قواعد lint، پیکربندی و قالببندیهای خاص که خودمان مینویسیم به صورت سفارشی درآوریم. دستور بالا پکیج کامپایلر تایپ اسکریپت رو برای کل سیستم نصب می کنه.
حالا اگه کدی بنویسیم که حاوی خطا باشه با اجرای این دستور موقع کامپایل، خطا رو به ما نشون میده. زبان برنامه نویسی TypeScript می تواند در همه مرورگرها، سیستم عامل ها و هاست ها اجرا شود. ساختار تایپ اسکریپت بر اساس ES6 (اکما اسکریپت 6) بنا شده است و ویژگی های جدیدی نیز دارد. دومین خاصیتی که این ویژگی به شما میدهد دریافت همان میزان کارایی و پرفورمنس است که از طریق جاوا اسکریپت دریافت میکنید. در واقع سرعت اجرای پروژههای شما بیشتر نخواهد شد، چرا که همانطور گفته شد در نهایت این قطعه کد جاوا اسکریپتی است که اجرا میشود.
در کد فوق یک نوع سفارشی داریم که در ادامه این مقاله آن را بیشتر بررسی خواهیم کرد. فعلاً یک وهله از آن میسازیم و سپس بررسی میکنیم که آیا واقعاً متغیری از نوع Human است یا نه و نتیجه را در کنسول نمایش میدهیم. تایپاسکریپت مانند زبانهای دیگر از نوع داده String برای ذخیره دادههای متنی استفاده میکند. همه این مقادیر نوع عددی میگیرند و این وضعیت شامل مقادیر باینری و هگزادسیمال نیز میشود. اینجا نوع متغیر name از روی مقدار اولیه اش که "Reza" هست، string تشخیص داده شده و وقتی مقدارش رو به یه عدد تغییر میدیم خطا میده.
معنی آن این است که نمیخواهیم آن را در هر بار فراخوانی تابع ارائه کنیم. در مثال فوق lastName یک پارامتر اختیاری است و معنی آن این است که در صورتی که در زمان فراخوانی تابع به آن اشاره نکنیم، کامپایلر خطایی صادر نخواهد کرد. در مثال فوق یک چندتایی ساده ساختهایم که در اندیس 0 عدد و در اندیس 1 رشته دارد. این بدان معنی است که اگر تلاش کنیم نوع داده متفاوتی در این اندیس قرار دهیم با خطایی مواجه خواهیم شد. در مثال فوق یک آرایه تعریف کردهایم که آرایه عددی دیگری را نگهداری میکند. در این روش یک آرایه عددی میسازیم که 5 مقدار عددی متفاوت را نگهداری میکند.
ژنریکها امکان ایجاد کامپوننتهایی را میدهند که با طیف گستردهای از نوعها منطبق هستند و اختصاص به یک نوع ندارند. بدین ترتیب کامپوننت ما open میشود و قابلیت استفاده مجدد پیدا میکند. اینک ممکن است کنجکاو شوید که چرا مستقیماً از یک نوع استفاده نمیکنیم که چند نوع منفرد برای کامپوننت ما ارائه کند. در ادامه به بررسی یک مثال میپردازیم تا این موقعیت را بهتر درک کنیم. ما میخواهیم یک تابع ساختگی ساده داشته باشیم که پارامتری که به آن تجزیه میشود را بازگشت دهد. علاوه بر اینکه تایپ اسکریپت میتونه اشتباهاتمون رو چک کنه و بهمون بگه، میتونه کمک کنه اصلا از اول این اشتباهات رو مرتکب نشیم.
در صورتی که به تازگی وارد دنیای برنامه نویسی شدهاید، حتما نام زبان برنامه نویسی جاوا اسکریپت به گوشتان خورده است. اما آیا تا به حال نام زبان تایپ اسکریپت را شنیدید؟ این زبان به عنوان یک راه حل برای محدودیتهای جاوا اسکریپت توسعه یافته تا معایب و کاستیهای آن را پوشش دهد. در این مطلب، در رابطه با چیستی زبان تایپ اسکریپت و کاربردها و مزایای آن، اطلاعاتی را در اختیار شما میگذاریم. تایپ اسکریپت (TypeScript) یک زبان برنامهنویسی است که به عنوان یک سوپرست برای جاوا اسکریپت (JavaScript) طراحی شده است. هدف اصلی از ایجاد تایپ اسکریپت، ارائه قابلیتهایی است که به توسعهدهندگان کمک میکند تا برنامههای بزرگتر و پیچیدهتری را با کد ایمنتر و قابل نگهداریتری بنویسند. این زبان توسط مایکروسافت توسعه یافته و اولین بار در اکتبر ۲۰۱۲ معرفی شد.
تایپ اسکریپت به ما امکان میدهد که به سطحی از تحلیل استاتیک کد دست پیدا کنیم که امکان دستیابی به آن در جاوا اسکریپت دشوار بوده است. بدین ترتیب میتوانیم باگها را پیش از آن که حتی رخ بدهند کشف کنیم. تایپ اسکریپت با الگو گرفتن از زبانهای برنامه نویسی مختلف توسعه یافته و در نتیجه قابلیتهای بسیار زیادی در این زمینه خواهد داشت. با پشتیبانی از این قابلیت شما قادر خواهید بود که در بیرون از کلاسها، اشیاء مورد نظرتان را به روشهای متفاوتی ایجاد کنید. تایپ اسکریپت قابلیت ایجاد و بایند کردن اشیاء مستقل از همدیگر را به سادگی میدهد. تایپ اسکریپت قابلیت اجرا شدن به صورت مستقیم را ندارد چرا که به کدهای صفر و یک تبدیل نمیشود.
تایپ اسکریپت با مشخص کردن نوع دادهها و بررسیهای زمان کامپایل، به شناسایی و رفع خطاها پیش از اجرای کدها کمک میکند. با تایپ اسکریپت، توسعهدهندگان میتوانند از تمامی مزایای جاوا اسکریپت بهرهمند شوند، در حالی که از امنیت و پایداری بالاتری برخوردار میشوند. این زبان به خصوص برای کسانی که به دنبال توسعهی پروژههای بزرگ و مقیاسپذیر هستند، یک ابزار بسیار ارزشمند است. تایپ اسکریپت نه تنها کدنویسی را آسانتر و امنتر میکند، بلکه به توسعهدهندگان این امکان را میدهد که با اطمینان بیشتری پروژههای خود را مدیریت و توسعه دهند. برای مثال ما در جاوا اسکریپت Dynamic Type داریم به این معنی که فقط کافی است نام متغیر و مقدار را پاس دهیم و نیازی به مشخص کردن نوع آن نیست.
حتی میشه قابلیت های جدید جاوا اسکریپت که تصویب شده ولی هنوز به مرورگر ها نیومده رو هم توی تایپ اسکریپت استفاده کرد و کامپایلر تبدیلش میکنه به نسخه پایین تر و قابل اجرا روی مرورگر. حالت Strict آسانترین مسیر به سوی سازگاری با سیستم نوعبندی تایپ اسکریپت محسوب میشود. این عواقب به شکل باگهای ردیابی نشده، خوانایی پایین و کدبیس با حجم بالاتر خود را نشان میدهند. این یک واقعیت است که شما امروز ناگزیر از یادگیری تایپ اسکریپت هستید و از این رو هر چه سریعتر این کار را انجام دهید، بهتر است. این واقعیت را نیز فراموش نکنید که تایپ اسکریپت برای حل مشکلات جاوا اسکریپت ساخته شده است. در ادامه برخی نکات و ترفندهای کدنویسی کارآمد در تایپ اسکریپت را با هم مرور میکنیم.
از هرگونه تماس تلفنی با پشتیبانی سایت و سوال در مورد محتوای مقاله ها خودداری شود. با فریمورکهایی مانند React Native و Ionic، میتوان برنامههای موبایل را با این زبان توسعه داد. ابزارهای توسعه متنوعی ارائه میدهد، از جمله سیستمهای مدیریت بستهها، IDEها و افزونههای متعدد. بنابراین میتوان گفت بله با این آموزش میتوانید typescript را کامل فرا بگیرید. واسطها امکان تعریف قراردادهایی را برای شیوهی تعامل بین کلاسها فراهم میآورد.
اگر یکی از انواع دادههای آن آبجکت را تغییر دهیم با خطا مواجه میشویم. اما از طرف دیگر، اگر ما در توابع، نوع دادههای ورودی را مشخص نکنیم، تایپاسکریپت نوع این دادهها را any در نظر میگیرد و ممکن است مشکل ساز شود. حتی اگر هم مشخص نکنیم، تایپاسکریپت میتواند نوع دادهها را تشخیص دهد. اگر تا به حال این تنظیمات را انجام نداده اید، از این لینک وارد وبسایت اصلی تایپاسکریپت شده و شیوه انجام آن را مرور کنید. اما نکته ای که باید به آن توجه کنیم این است که، هنوز حالت strict mode در تایپاسکریپت را فعال نکردیم.
وقتی شما از دستور tsc استفاده میکنید ، نوشتن نام یک فایل که قصد دارید کامپایل شود کار حرفه ای نیست مخصوصا اگر بخواهید چند فایل ts را در یک لحظه کامپایل کنید. هرگونه کپی برداری از مطالب و محتوای این سایت مجاز نبوده و پیگرد قانونی دارد. این زبان برای توسعه برنامههای وب بزرگ و پیچیده که نیاز به ساختاریافتگی و تایپ استاتیک دارند، بسیار مناسب است. تایپهای صریح و ساختاریافته به بهبود خوانایی و نگهداری کدها کمک میکند. شاید تصور کنید که باید به همان شکل کدها را در مرورگر یا هر جای دیگر اجرا کرد.
علاوه بر این TypeScript از تکنیک type inference استفاده می کند تا شما بتوانید با حجم کمتری از کدنویسی برنامه خود را توسعه دهید. تایپ اسکریپت، زبان برنامه نویسی است که از تایپ پویا و استاتیک پشتیبانی کرده و کلاسها، دامنه دید، رابطها و بسیاری دیگر از ویژگیها را نیز فراهم میکند. در ضمن، قادر به ارائه نظرات، عبارتها، متغیرها، ماژولها و توابع است. در مقایسه با جاوا اسکریپت، کار بر روی تایپ اسکریپت در یک برنامه بزرگ آسانتر میباشد. همانطور که گفتیم تایپ اسکریپت (Typescript) زبان بسیار مهمی است که این امکان را در اختیار کاربر قرار میدهد تا کیفیت کدهای خود را در پروژههای بزرگتر بالاتر ببرد. برای کسب مطالعه مقالات بیشتر، به بخش بلاگ وبسایت شرکت نرم افزاری وب نگاه مراجعه فرمایید.
به همین دلیل است که می توانیم از زبان TypeScript به عنوان یکی از راه حل های روبرو شدن با کمبود های زبان جاوا اسکریپت استفاده کنید. TypeScript کمک می کند تا syntax بیشتری به زبان جاوا اسکریپت استفاده بشود تا یکپارچه سازی و یا integration قوی تری را با editor ایجاد کند. علاوه بر این کشف کردن خطاها در همان ابتدای کار یکی دیگر از ویژگی های منحصر به فرد زبان TypeScript می باشد. با استفاده از TypeScript شما می توانید کدهایی را بنویسید که پس از نوشته شدن به زبان جاوا اسکریپت تبدیل می شوند و می توانند در محیط های مختلف از قبیل مرورگر، Node.js و یا Deno اجرا بشود. از دیگر ویژگی های منحصر بفرد زبان TypeScript بحث مربوط به مقیاس پذیری آن می باشد.
این سازگاری باعث میشود که تایپ اسکریپت به راحتی در پروژههای موجودی که با جاوا اسکریپت نوشته شدهاند، قابل استفاده باشد. TypeScript چیست؟ تایپ اسکریپت (TypeScript) یک زبان برنامهنویسی است که توسط مایکروسافت توسعه یافته و به عنوان یک افزونه برای جاوا اسکریپت طراحی شده است. این زبان در واقع نسخهای قویتر از جاوا اسکریپت است که قابلیتهایی مانند تایپگذاری استاتیک، کلاسها، اینترفیسها و دیگر ویژگیهای مدرن برنامهنویسی شیءگرا را به آن اضافه میکند. جاوا اسکریپت یک زبان برنامه نویسی تفسیری است که از تایپ های پویا پشتیبانی می کند. این بدان معناست که نوع داده های متغیرها و مقدارهای برگشتی توابع در زمان اجرا تعیین می شود.
اینطوری که به قضیه نگاه می کنیم فلسفه ای به اسم نوع به وجود میاد که بتونیم نوع یک مقدار رو توصیف کنیم و بدونیم چه عملکرد های روی این مقدار قابل انجامه. جاوا اسکریپت نوع ها رو فقط به صورت پویا (dynamic) می تونه تشخیص بده یعنی فقط بعد از اجرای کد و مشاهده نتیجه. ژنریکها در زمینه نوشتن کد با مقیاسپذیری که بتواند در سراسر پروژه مورد استفاده مجدد قرار گیرد نقشی کلیدی دارند. ژنریکها یک قابلیت کلیدی تایپ اسکریپت هستند که مقیاسپذیری کد را افزایش میدهند. به این ترتیب میتوانید هر تغییری را فراخوانی کرده و آن را به هر نوعی انتساب دهید. در واقع به این ترتیب اعلام عمومی میکنید که این متغیر میتواند هر چیزی باشد.
همانطور که در ابتدای این مطلب گفته شد میتوانید برای دسترسی بیشتر به اطلاعات آموزش تایپاسکریپت وبسایت راکت را دنبال کنید. همچنین میتوانید با مراجعه به لینکهای زیر اطلاعات مفیدی در رابطه با موضوعات مختلف را بدست بیاورید. با بررسی مثالهای بالا، کاملا واضح است که نوع دادهی Tuple در تایپ اسکریپت در این آرایه چه کاربردی دارد. برای توضیح بیشتر، این آرایه با نوع دادهی Tuple مشخص شده و میتواند تنها دو المان در آرایه داشته باشد. اولین مقدار در آرایه باید از نوع string و دومین مقدار در آرایه باید از نوع number باشد. حالت strict mode در تنظیمات خود تایپ اسکریپت و در فایل tsconfig.json یا همچنین توسط دستور strict— قابل تغییر و تنظیم است.
در دوره آموزش تایپاسکریپت ما سعی میکنیم دقیقا این پروسه کامپایل شدن کدهای تایپاسکریپت به جاوااسکریپت را به شکل دقیق به شما آموزش دهیم. یکی از ویژگیهای بسیار منحصر به فرد تایپاسکریپت نسبت به موارد دیگر وجود نوعهای ایستا است. این بدان معناست که شما میتوانید نوع یک متغیر را تعریف کرده و کامپایلر از اینکه مقدار اشتباهی به آن داده نشده اطمینان حاصل کند. اگر نوع دادهای فراموش یا حذف شود، نوع متغیر براساس داده موجود در کدها، خود را تطبیق میدهد. بنابراین شاید بهتر باشد که اجازه دهید تایپ اسکریپت خطاها را نمایش دهد و متوجه اشتباهاتتان در کدنویسی بشوید.
اینجا من تصورم اینه که شما با NodeJS و اجرای دستورات و نصب پکیج های npm آشنایی دارین. یعنی در برخی موارد حتی در صورتی که شکل زیرساختی شیء یکسان باشد، مقدار false بازگشت میدهد. این رفتار ممکن است نامطلوب باشد که درون یک دایرکتوری چندین فایل js و چندین فایل ts وجود داشته باشد. با این دستور یک فایل index.js در همین مسیر یعنی در کنار index.ts ساخته میشود. این زبان توسط بسیاری از IDEها و ویرایشگرهای کد پشتیبانی میشود که تجربه توسعهدهنده را بهبود میبخشد. برای دریافت مشاوره و ثبت درخواست طراحی اپلیکیشن مورد نظر خود، با کارشناسان شرکت وب نگاه تماس بگیرید.
رقیب جدید جاوا اسکریپت، تایپ اسکریپت Type Script)) است که با بیشتر شدن محبوبیت آن، میتوان آن را به عنوان نسخه پیشرفته جاوا اسکریپت در نظر گرفت. تایپ اسکریپت (Typescript) یک زبان برنامهنویسی کامپایلری است که بر پایه زبان جاوا اسکریپت ساخته شده است و برای حل برخی از مشکلات و نقاط ضعف جاوااسکریپت توسط Microsoft ایجاد شده است. تایپ اسکریپت، برای توسعه برنامههای کاربردی موبایل، وب، و دسکتاپ استفاده میشود. این زبان برنامهنویسی، به دلیل سرعت، کارایی، و قابلیت استفاده بالا، محبوبیت زیادی پیدا کرده است. تایپ اسکریپت با معرفی تایپگذاری استاتیک، این مشکلات را کاهش میدهد و به توسعهدهندگان امکان میدهد تا کدهایی با امنیت بالاتر و خطاهای کمتر بنویسند.
کلاس برنامه نویسی در غرب تهران