آموزش جامع TypeScript
جاوااسکریپت با زره! نوشتن کدهای بزرگ و بدون ترس.
تایپاسکریپت چیه و به چه دردی میخوره؟
سوپرمنِ دنیای جاوااسکریپت!
تایپاسکریپت یه "Superset" از جاوااسکریپته. یعنی چی؟ یعنی همون جاوااسکریپته، ولی با یه سری قدرتهای ویژه! مهمترین قدرتش Static Typing هست. یعنی بهمون اجازه میده نوع متغیرها، پارامترهای توابع و... رو از قبل مشخص کنیم. این کار مثل اینه که قبل از ساختن یه ساختمون، یه نقشه دقیق داشته باشی. جلوی کلی از خطاهایی که ممکنه تو جاوااسکریپت خالص پیش بیاد رو همون اول کار میگیره و باعث میشه پروژههای بزرگ رو با اطمینان بیشتری توسعه بدیم.
نقشه راه یادگیری (۱۲ درس)
مقدمات و نصب
با TS آشنا میشیم، نصبش میکنیم و اولین برنامهمون رو کامپایل میکنیم.
انواع پایه
یادگیری انواع داده اصلی مثل string, number, boolean و any.
آرایه، Tuple و Enum
چگونه مجموعهای از دادهها را به صورت امن تایپبندی کنیم.
توابع
تایپبندی پارامترهای ورودی و مقادیر خروجی توابع.
آبجکت و Interface
تعریف "شکل" و "قالب" برای آبجکتهای پیچیده.
انواع پیشرفته
آشنایی با Union, Intersection و Literal Types.
کلاسها و OOP
نوشتن کدهای شیءگرا با کلاسها، ارثبری و ... .
Generics
نوشتن توابع و کلاسهای انعطافپذیر که با انواع مختلف کار میکنند.
کار با DOM
چگونه تایپاسکریپت به ما در دستکاری امن عناصر HTML کمک میکند.
ماژولها
وارد و خارج کردن کد بین فایلهای مختلف برای مدیریت بهتر پروژه.
پروژه ۱: لیست کارها
بازسازی پروژه لیست کارها، این بار با قدرت و امنیت تایپاسکریپت.
پروژه ۲: اپ هواشناسی
یک اپ هواشناسی واقعی با استفاده از API و تایپبندی دادههای دریافتی.
نمونهای از قدرت TypeScript: شکار خطا قبل از اجرا!
در جاوااسکریپت معمولی، کد سمت چپ بدون خطا اجرا میشه و فقط موقعی که تابع رو صدا بزنی، برنامه کرش میکنه. اما تایپاسکریپت همون موقع نوشتن کد بهت اخطار میده که داری یه عدد رو به تابعی که انتظار رشته داره پاس میدی! این یعنی پیدا کردن باگها قبل از اینکه اصلاً اتفاق بیفتن.
// این کد در جاوااسکریپت مشکلی نداره!
function greet(name) {
console.log("Hello, " + name.toUpperCase());
}
// خطا فقط موقع اجرا اتفاق میفته
greet(42); // 💥 TypeError: name.toUpperCase is not a function
function greet(name: string) {
console.log("Hello, " + name.toUpperCase());
}
// کامپایلر همون لحظه خطا رو بهت میگه!
greet(42); // 🛑 Error: Argument of type 'number' is not assignable to parameter of type 'string'.