• TypeScript - قسمت پنجم
TypeScript - قسمت پنجم
1395/02/25 - 11:22:06 // TypeScript // 1 نظر // 376 بازدید

در قسمت قبلی با منطق Typing درTypeScript آشنا شدیم . در این قسمت به بررسی نوعهای استاندارد در TypeScript خواهیم پرداخت.

بسمه تعالی

TypeScript - قسمت پنجم

در قسمت قبلی با منطق Typing درTypeScript آشنا شدیم . در این قسمت به بررسی نوعهای استاندارد در TypeScript خواهیم پرداخت.

برای شروع ، همان پروژه قبلی را باز کنید ، چرا که فعلن اکثر تعاریف را در همان پروژه میتوان انجام داد.

در ابتدا به بررسی نوعهای اولیه در TypeScript خواهیم پرداخت .

سه نوع اصلی و اولیه در TypeScript وجود دارد .

1- Number

2- String

3- Boolean

به مثال زیر دقت کنید .

در تصویر بالا ، یک متغیر از نوع Number ، یکی از نوع String و یکی از نوع Boolean تعریف شده است . حال به ترتیب مقدار دهیهای درست و غلط را مشاهده میکنید . متغیرهایی که زیر خط قرمز دارند ، در مقدار دهی با خطا روبرو شده اند . در num شما نمی توانید رشته و در str نمیتوان عدد و در bool هم نمیتوان رشته ذخیره کرد . این همان سخت گیری است که در javascript وجود نداشت و خیلی جاها سبب دردسر و بروز خطا میگشت .

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

حال مقدار دهی به مثلا عضو اول آرایه به شکل زیر است .

پس تعریف یک آرایه به صورت

Var ArrayName : Type[] ;

خواهد بود .

برای String Array هم میتوان به شکل زیر عمل نمود .

این عملن یک Generic Syntax میباشد . حال مثلن میتوان به شکل زیر درون آن مقدار وارد نمود .

همانطور که میبینید در یک String Array دیگر نمی توان مقدار عددی وارد نمود ، ولی حالت اول که یک String است ، به درستی انجام خواهد شد .

یکی دیگر از انواع جالبی که در TypeScript وجود دارد ، نوع Any است که از طریق آن میتوان مقداری را برای متغیر در نظر گرفت . به عنوان مثال :

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

حتی نوع Any را میتوان در آرایه ها هم بکار برد .

نوع دیگری که در TypeScript وجود دارد و به تازگی در C#.NET 7 قرار داده شده ، نوع Tuple می باشد . در عمل Tuple ها یک نوع Array با قابلیت ذخیره سازی انواع مختلف را دارند . به مثالهای زیر دقت کنید .

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

رویکرد Tuple ها در TypeScript بیشتر شبیه به Class هاست تا یک آرایه ساده . به تصویر زیر دقت کنید .

در اینجا یک Tuple جدید در خط سوم برای ما ایجاد خواهد شد و قاعدتا وضعیت یک متغیر String در ابتدا و یک عدد به عنوان متغیر دوم خواهد داشت.

حال به بررسی چگونگی تعریف Enumeration در TypeScript خواهیم پرداخت .

همانطور که میدانید ، هدف از تعریف Enum ، در اصل ایجاد یک Collection از مقادیر مرتبط به هم میباشد . در همه زبانهای Server Side این قابلیت وجود دارد ، ولی در JavaScript چنین چیزی نداریم . حال این مشکل در TypeScript به خوبی حل شده است .

در تصویر زیر لیستی از شهرها ایجاد و بعد متغیری برای تایین پایتخت را با آن مقدار دهی نموده ایم.

برای استفاده یا مقدار دهی مقادیر Enum میتوان از عدد و شماره ترتیب آنها استفاده نمود . به مثال زیر دقت کنید .

در اینجا مقدار 0 و Red با هم برابرند ، چرا که Red آیتم اول این Enum میباشد.

حال به بررسی چگونگی یک Tristate توسط یک Enum میپردازیم.

یک TriState تعریف شده و با دستور Console.log مقدار 0 یا false که هر دو یکی هستند در خروجی چاپ شده است. دستور سوم هم همان مقدار 0 را باز خواهد گرداند .

اگر بخواهید سیستم ترتیب عددی enum ها به صورت دلخواه منظم کنید ، می توانید مانند زیر عمل کنید .

در حالت اول به صورت طبیعی ترتیب مقادیر از 0 است ، ولی در حالت دوم ، با اختصاص مقدار 3 به آیتم اول ، به صورت اتوماتیک مقادیر بعدی هم به 4 و5 ، تبدیل شده است.

در قسمت بعدی به بررسی ادامه مفاهیم پایه در TypeScript پرداخته و کم کم به سراغ تعریف Class و استانداردهای آن خواهیم رفت .

علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
نظرات کاربران
  • سوران
    1395/03/11 - 13:22:56

    0
    0
    TypeScript خیلی به جاوا اسکریپت قدرت میده ولی enum رو که گفتید توی جاوا اسکریپت نداشتیم درسته کلمه کلیدی enum رو نداریم ولی با json خیلی راحت همین کار رو میشه کرد
     
    --
    پاسخ : خوب این که شد همان نداریم که . بنده نوشته ام دستور Enum نداریم ، وگرنه که همه چیز را میشود یک طور دیگری پیاده سازی کرد آخر. 
ارسال نظر