تایپ اسکریپت چیست و چرا باید از آن استفاده کنیم؟

تایپ اسکریپت چیست و چرا باید از آن استفاده کنیم؟Why You Should Choose TypeScript Over JavaScript

تایپ اسکریپت چیست و چرا باید از آن استفاده کنیم؟

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

 

 حدود 60٪ از برنامه نویسان JS اکنون از TypeScript استفاده می کنند و 22٪ مایل به امتحان کردن آن هستند. چرا؟

 

از نظر تاریخی، جاوا اسکریپت به عنوان زبان اصلی برای نوشتن صفحات وب و برنامه ها در اینترنت بوده است. اکنون می توان از JavaScript در هر دو بخش frontend و backend با چارچوبی مانند Node.js و Deno استفاده کرد.

 

اما آیا جاوا اسکریپت برای ایجاد سیستم های پیچیده و بزرگ مانند سیستم های وب مدرن ساخته شده است؟ نه

 

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

 

در این مقاله موارد ذیل را بررسی خواهیم کرد:

 

  • TypeScript چیست؟
  • نوع یا تایپ چیست و چگونه در TS کار می کند؟
  • جاوا اسکریپت در مقابل TypeScript: کدام یک را انتخاب کنید؟
  • نحوه شروع کار با TypeScript.
  • منابع بیشتر برای مطالعه TypeScript.

 

تایپ اسکریپت چیست ؟ (what is typescript)

 

به طور خلاصه ، TypeScript یک superset از JavaScript است که دارای تایپ اختیاری است و به JavaScript ساده کامپایل می شود. به عبارت ساده تر ، TypeScript از نظر فنی JavaScript با تایپ ایستا است ، هر زمان که بخواهید آن تایپ ها را داشته باشید.

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

 

حال ، دلایل افزودن تایپ ثابت به جاوا اسکریپت چیست؟

 

می توانم حداقل سه مورد را لیست کنم:

 

  • شما می توانید از خطاهایی که استادانه پنهان شده اند مانند خطای کلاسیک  .undefined' is not a function' در امان بمانید.
  • ریفکتور کد بدون شکست ساختار آن ساده تر است.
  • شی گرائی در سیستم های پیچیده و در مقیاس بزرگ دیگر کابوس نیست.

 

 

در واقع ، یک مطالعه نشان می دهد که 15٪ از کل اشکالات JavaScript را می توان با TypeScript تشخیص داد.

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

 

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

 

برای یادگیری و استفاده از TypeScript به چه مواردی نیاز دارم؟

 

TypeScript در اصل یک JS linter است. یا ، JS با اسنادی که کامپایلر می تواند درک کند.

 

بنابراین ، بر خلاف زبانهای دیگر مانند CoffeeScript (که کد نحوی اضافه می کند) یا PureScript (که به هیچ وجه شبیه JavaScript نیست) ، برای شروع نوشتن کد TypeScript نیازی به یادگیری چیزهای زیادی ندارید.

 

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

 

آیا TypeScript در فرانت اند یا بک اند  استفاده می شود؟

 

TypeScript به JavaScript کامپایل شده است. بنابراین ، TS می تواند در هر جایی که JS می تواند استفاده شود ، استفاده شود: هم فرانت و هم قسمت بک اند.

 

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

 

انواع چیست و چگونه در TS کار می کنند؟

 

معرفی مختصر انواع

انواع راهی برای تشخیص نادرست برنامه های صحیح قبل از اجرای آنها با توصیف در کد ما  برای استفاده از داده هایمان است. آنها می توانند از انواع ساده ای مانند Number و String تا ساختارهای پیچیده ای که برای دامنه مشکل ما کاملاً مدل سازی شده اند ، متفاوت باشند.

 

زبان های برنامه نویسی به دو دسته تقسیم می شوند: تایپ ایستا یا تایپ پویا.

 

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

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

TypeScript می تواند تایپ ایستا را پشتیبانی کند ، در حالی که JavaScript پشتیبانی نمی کند.

 

به دلیل تایپ استاتیک TypeScript ، برای شما سخت تر خواهد بود که :

 

  • تمامی متغیر های تعریف نشده را تعریف کنید (هشدارهای زمان کامپایل به شما کمک می کند)
  • دو رشته را جمع کنید که در آنها اعداد وجود دارد (مانند "4" + "20" = "420")
  • کارهایی را انجام دهید که تایپ اسکریپت اجازه نمی دهد ، مانند برش دادن یک عدد.

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

 

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

 

 

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

 

TypeScript انواع مختلفی دارد ، مانند Boolean ، Number ، String ، Array ، Tuple و غیره. بعضی از اینها در JS وجود ندارند. می توانید درباره آنها در مستندات TypeScript اطلاعات بیشتری کسب کنید.

 

علاوه بر موارد ذکر شده ، در اینجا انواع دیگری نیز وجود دارد که می خواهیم برای  TS بیان کنیم:

 

Any و Unknown

اگرچه  any به عنوان یک نوع پشتیبانی میشود ، خوب ، هر چیزی را که بخواهید ، Unknown نوع مشابه آن است.

 

هر زمان که بخواهید از سیستم type فرار کنید ، هر یک از شما را قادر می سازد که هر متغیر JavaScript را به آن اختصاص دهید. غالباً برای مدلسازی متغیرهای ورودی (مثلاً از API شخص ثالث) که هنوز بررسی نشده و نوع آنها ناشناخته است ، مورد استفاده قرار می گیرد.

 

Unknown بسیار شبیه هر مورد است ، اما به شما اجازه نمی دهد قبل از اینکه صریحاً نوع آن را تایپ کنید ، روی متغیر عملیاتی انجام دهید.

 

Void

از Void هنگامی استفاده می شود که مقداری برگردانده نشده باشد ، به عنوان مثال ، به عنوان نوع بازگشتی توابع که هیچ چیزی را بر نمی گرداند.

 

Never

نوع بازگشت never برای چیزی که هرگز نباید اتفاق بیفتد ، مانند تابعی است که یک استثنا را ایجاد می کند.

 

Intersection & Union types

این type ها به شما امکان می دهد انواع متنوعی ایجاد کنید تا منطق شما بهتر باشد.

 

انواع Intersection به شما امکان می دهد چندین نوع اساسی را در یک نوع قرار دهید. به عنوان مثال ، شما می توانید نوع شخصی سفارشی ایجاد کنید که دارای نام: string و شماره تلفن: number باشد. برابر است با گفتن: من می خواهم نوع من این و آن باشد.

 

نوع Union  شما را قادر می سازد تا یکی از انواع اساسی متعدد را به خود اختصاص دهد. به عنوان مثال ، می توانید کوئری داشته باشید که نتیجه را برگرداند: stringیا undefined. برابر است با گفتن: من می خواهم نوع من این یا آن باشد.

 

اگر به انواع به عنوان فضاها فکر می کنید ، همه این انواع به سرعت معنا پیدا می کنند.

 

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

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

 

TypeScript در برابر JavaScript

نگاهی به این نمودار بیندازید:

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

 

TypeScript اکنون در رتبه 7 در درخواست های GitHub برای Q1 2020 ، بالاتر از PHP و C قرار دارد. 

پشتیبانی از TypeScript توسط شرکتهایی مانند مایکروسافت (که آن را ایجاد کرده است) و گوگل دلیل خوبی برای این آمار است.

 

3 دلیل برای اینکه شما باید TypeScript را به جای JavaScript انتخاب کنید

 

1. TypeScript قابل اطمینان تر است :

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

 

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

 

2. TypeScript صریح تر است :

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

 

3. TypeScript و JavaScript عملا قابل تعویض هستند ، پس چرا اینطور نیست؟

از آنجا که JavaScript زیرمجموعه TypeScript است ، می توانید از همه کتابخانه ها و کدهای JavaScript که می خواهید در کد TypeScript خود استفاده کنید.

 

محبوب ترین کتابخانه های جاوا اسکریپت در سال 2020 انواع مختلفی دارند - قطعاً Typed مخزنی با انواع مختلف کتابخانه های مختلف جاوا اسکریپت است که می توانید از آنها برای ایجاد ارتباطات سالم با نوع آنها استفاده کنید.

 

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

 

معایب  TypeScript

 

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

 

اگرچه می توانیم درباره مزایایی که صریح در مورد انواع آنها به شما می دهد بحث کنیم ، اما در کوتاه مدت ، افزودن آنها زمان بیشتری می برد. مسلماً این یک معامله بزرگ نیست ، اما بحثی به نفع JavaScript است.

 

بنابراین ، شما ممکن است TypeScript را برای پروژه های کوچک و نمونه های اولیه برای استفاده شخصی خود انتخاب نکنید.

 

مقایسه سر به سر

هر دوی این موارد دسته های مختلفی از اشکالات را دارند ، بنابراین منطقی است که هر دو را به روشی غیر جانبدارانه انجام دهید.

 

با حفظ مزایای سیستم نوع ایستا ، هنوز هم می توانید از تست واحد و تکنیک های پیشرفته تری مانند آزمایش مبتنی بر ویژگی با TS استفاده کنید.

به طور خلاصه ، در اینجا مقایسه سریع هر دو زبان وجود دارد:

تایپ اسکریپتجاوا اسکریپت
TS یک زبان برنامه نویسی شی گرا استJS یک زبان برنامه نویسی شی گرا است
زبان وابسته (کامپایل به JavaScript)زبان مستقل (قابل تفسیر و اجرا است)
زبان کامپایل شده ، مستقیماً در مرورگر قابل اجرا نیستزبان تفسیر شده ، مستقیماً در یک مرورگر وب اجرا می شود
می توان بصورت نوع ایستا استفاده کرددارای نوع داینامیک
ساختار بهتر و مختصراز آنجا که محدود به سیستم نوع نیستید ، انعطاف پذیرتر است
پسوند .ts داردپسوند .js دارد
توسط مایکروسافت و توسط Anders Hejlsberg (طراح C #) ایجاد شده و توسط مایکروسافت نگهداری می شودتوسط Brendan Eich (Netscape) ایجاد شده و توسط ECMA (انجمن تولیدکنندگان رایانه اروپا) نگهداری می شود.
یک انتخاب عادلانه برای پروژه های پیچیدهخوب است که با پروژه های ساده و کوچک کار کنید

 

راهنمای شروع سریع TypeScript

 

TypeScript compiler

برای کامپایل کد TS خود ، باید tsc (مخفف کامپایلر TypeScript) را نصب کنید. ساده ترین راه برای انجام آن از طریق ترمینال است. با استفاده از دستور زیر می توان به راحتی از طریق npm این کار را انجام داد:

 

npm install -g typescript

 

اگر می خواهید از TypeScript با Visual Studio Code استفاده کنید ، یک راهنمای مفید در وب سایت آنها وجود دارد.

 

پس از نصب tsc ، می توانید پرونده های خود را با tsc filename.ts کامپایل کنید.

 

انتقال فایل های خود از JavaScript به TypeScript

بگذارید بگوییم که به دلیل رفتار عجیب و غریب می خواهیم فایل JavaScript زیر را به TypeScript تغییر دهیم:

 

function my_sum(a, b) {
    return a + b;
    }


let a = 4; 
let b = "5";


my_sum(a, b);

 

خبر خوب. هر پرونده JS از نظر فنی یک پرونده TypeScript معتبر است ، بنابراین شما شروع بسیار خوبی دارید - فقط پسوند پرونده را از .js به .ts تغییر دهید.

 

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

 

اگر می خواهیم فقط اعداد را جمع کنیم ، می توانیم یک امضای نوع به my_sum اضافه کنیم تا فقط اعداد را بپذیرد.

 

function my_sum(a: number, b: number) {
    return a + b;
    }


let a = 4; 
let b = "5";


my_sum(a, b);

 

اکنون ، TypeScript خطایی را در اختیار ما قرار می دهد.

Argument of type 'string' is not assignable to parameter of type 'number'.

 

چیز خوبی که متوجه شدیم این است که خطا کجاست. :) برای فرار بیشتر از خطاهایی مانند این ، می توانید تعاریف نوع را به متغیرها اضافه کنید.

 

let b: number = "5" // Type '"5"' is not assignable to type 'number'.
let b: number = 5 // Everything ok.

 

TypeScript کاملاً انعطاف پذیر است و میتواند و میداند که چگونه به شما کمک کند.

 

چگونه از TypeScript در مرورگر استفاده کنیم؟

 

برای اجرای TypeScript در یک مرورگر ،کدها باید با کامپایلر TypeScript (tsc) به JavaScript کامپایل شوند. در این حالت ، tsc یک فایل .js جدید بر اساس کد .ts ایجاد می کند ، که می توانید به هر روشی که می توانید از یک فایل JavaScript استفاده کنید ، می توانید از آن استفاده کنید.

 

جمع بندی

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

 

امیدوارم این مقاله در سفر به TypeScript برای شما مفید واقع شود. اگر می خواهید کمک کنید یا سوالی دارید ، حتماً زیر همین مقاله با ما در میان بگذارید.

برچسب ها

نظرات :

در عرض چند دقیقه برای ایجاد حساب

کاربری خود اقدام کنید


اکنون حساب کاربری خود را ایجاد کنید!


ایجاد حساب کاربری

با ثبت نام در نیلوتک از آخرین بروز رسانی های آموزش ها و مقالات سایت مطلع شوید