The Basics
مفاهیم پایه ای تایپ اسکریپت، شامل طرز کار و نحوه اولیه کدنویسی
Static type-checking
تایپاسکریپت به عنوان یک type-checker استاتیک (Static Type Checker) ساختار و رفتار متغیرها را قبل از اجرای برنامه بررسی میکند. اگر مشکلی ببیند (مثلاً فراخوانی تابعی که وجود ندارد، یا مقدار اشتباه در یک متغیر)، به ما در لحظهی کدنویسی هشدار میدهد.
Non-exception Failures
تایپاسکریپت با وجود اینکه از روی جاوا اسکریپت ساخته شده است، اما دارای یک سیستم تایپ استاتیک (static type system) است که قوانین سختگیرانهتری دارد.
در مثال زیر، تایپاسکریپت خطایی برای استفاده پراپرتی location به دلیل وجود نداشتن آن در object user ارسال میکند:
در مثال زیر، متغیر value فقط میتواند "a" یا "b" باشد. اگر شرط if (value !== "a") درست باشد، قطعاً مقدار value == b است. پس در بخش else هم، مقدار value فقط میتواند "a" باشد. حالا اگر شرط else if (value === "b") را قرار دهیم (که یک عمل بیهوده است)، تایپاسکریپت هشدار میدهد:
Types for Tooling
تایپاسکریپت فقط یک سیستم بررسی نوع و نمایش خطا نیست. اگر خطایی رخ دهد، پیشنهادهایی را برای اصلاح آن ارائه میدهد.
- 🔄 Refactoring (بازآرایی کد)
- 🧭 Navigation (ناوبری سریع در کد)
- 🧰 auto completion
tsc, the TypeScript compiler
نکته: tsc کامپایلر مربوط به تایپاسکریپت است که کدهای تایپاسکریپت را به جاوا اسکریپت خام تبدیل میکند. کامپایلر tsc فایل .ts را به یک فایل .js تبدیل میکند.
اگر خطایی در فایل .ts وجود داشته باشد، باز هم کامپایلر فایل خروجی .js را تولید میکند. به این دلیل که شاید شما بخواهید از پروژه جاوا اسکریپتی خود به تایپاسکریپت مهاجرت کنید.
اگر قصد غیرفعال کردن این کار را دارید، باید تنظیمات زیر را به فایل tsconfig.json خود اضافه کنید:
فایل tsconfig.json تنظیمات کامپایلر تایپاسکریپت است که نحوه تبدیل کد به جاوا اسکریپت را کنترل میکند.
Explicit Types
تایپاسکریپت خودش به صورت اتوماتیک نوع متغیرهایی که به آنها مقداری پاس داده شده را تشخیص میدهد، با این حال میتوان نوع تمام متغیرها، ورودی و خروجی توابع را تعیین کرد:
Erased Types
در خروجیهایی که تایپاسکریپت تولید میکند، هیچکدام از نوعهایی که برای متغیرها تعریف کردهایم وجود ندارند زیرا مرورگر نمیتواند تایپاسکریپت را اجرا کند. پس نتیجه میگیریم که تایپاسکریپت فقط برای بررسی ایمنی در زمان توسعه است.
Downleveling
تایپاسکریپت کدی که با ES6 یا بالاتر نوشته شده باشد را به ES5 تبدیل میکند تا جاوا اسکریپت نوشته شده، در مرورگرهای قدیمی هم قابل اجرا باشد.
کد زیر با ES6 نوشته شده است:
در فایل خروجی، تایپاسکریپت آن را به ES5 بازنویسی کرده است:
strictness
تایپاسکریپت به صورت پیشفرض سعی میکند خیلی سختگیر نباشد تا برنامهنویسانی که تازه وارد تایپاسکریپت شدهاند، بتوانند به راحتی با آن تعامل پیدا کنند. اما اگر میخواهید کد ایمنتری داشته باشید و خطاهای پنهان هم نداشته باشید، میتوانید در فایل tsconfig.json خود، این حالت را فعال کنید:
