آموزش جامع TypeScript برای مبتدیان
🎯 اهداف یادگیری
- تفاوت TypeScript و JavaScript را درک کنید
- نحوه تنظیم محیط توسعه TypeScript را یاد بگیرید
- با انواع داده (Types) در TypeScript آشنا شوید
- نحوه کامپایل TypeScript به JavaScript را بیاموزید
📌 TypeScript چیست؟
TypeScript یک زبان برنامهنویسی متنباز (Open Source) است که توسط مایکروسافت توسعه داده شده و یک سوپرست برای JavaScript محسوب میشود:
typescript
let message: string = "سلام دنیا!";// این یک متغیر با نوع string در TypeScript است
مزایای TypeScript:
- تایپهای استاتیک: کاهش خطاهای زمان اجرا با بررسی نوع دادهها در زمان کامپایل
- ابزارهای توسعه پیشرفته: اتوکامپلیت و تشخیص خطاهای بهتر
- سازگاری با JavaScript: تمام کدهای JavaScript در TypeScript معتبر هستند
📌 نصب و راهاندازی TypeScript
برای شروع کار با TypeScript ابتدا باید آن را نصب کنید:
bash
# نصب TypeScript به صورت全局npm install -g typescript# بررسی نسخه نصب شدهtsc --version
مراحل کامپایل TypeScript:
- یک فایل با پسوند .ts ایجاد کنید (مثال: app.ts)
- کدهای TypeScript خود را در آن بنویسید
- فایل را با دستور tsc کامپایل کنید
bash
# کامپایل فایل TypeScripttsc app.ts# فایل خروجی JavaScript ایجاد میشود (app.js)
📌 انواع داده (Types) در TypeScript
TypeScript از انواع داده مختلفی پشتیبانی میکند:
typescript
let name: string = "علی";let age: number = 25;let isActive: boolean = true;let skills: string[] = ["JavaScript", "TypeScript", "React"];let anything: any = "میتواند هر نوع مقداری بگیرد";
انواع داده پرکاربرد:
نوع | توضیح | مثال |
---|---|---|
string | مقادیر متنی | "سلام" |
number | اعداد صحیح و اعشاری | 10 یا 3.14 |
boolean | مقادیر true/false | true |
array | آرایهها | [1, 2, 3] |
any | هر نوع مقداری | "متن" یا 123 |
📌 توابع در TypeScript
در TypeScript میتوانید برای پارامترها و مقدار بازگشتی توابع نوع مشخص کنید:
typescript
function add(a: number, b: number): number { return a + b;}// استفاده از تابعconsole.log(add(5, 3)); // خروجی: 8
انواع توابع:
- توابع معمولی: مانند مثال بالا
- توابع arrow: با سینتکس جدیدتر
- توابع با پارامترهای اختیاری: با علامت ?
typescript
// تابع arrowconst multiply = (a: number, b: number): number => a * b;// تابع با پارامتر اختیاریfunction greet(name: string, title?: string): string { return `سلام ${title ? title + : ''}${name}`;}
📌 اینترفیسها (Interfaces)
اینترفیسها برای تعریف ساختار اشیا استفاده میشوند:
typescript
interface User { id: number; name: string; email?: string; // اختیاری}const user1: User = { id: 1, name: "علی"};
ویژگیهای اینترفیسها:
- تعریف ساختار ثابت: برای اشیا با خصوصیات مشخص
- پارامترهای اختیاری: با علامت ? مشخص میشوند
- قابل گسترش: میتوان اینترفیسها را extends کرد
📌 تمرین عملی
کد زیر را با استفاده از TypeScript کامل کنید:
typescript
// اینترفیس Product را تعریف کنید// تابع calculateTotalPrice را پیادهسازی کنیدfunction calculateTotalPrice(products) { let total = 0; products.forEach(product => { total += product.price; }); return total;}
راهنمای تمرین:
- اینترفیس Product را با خصوصیات id (number)، name (string) و price (number) تعریف کنید
- نوع پارامتر تابع calculateTotalPrice را آرایهای از Productها مشخص کنید
- نوع بازگشتی تابع را number تعیین کنید
📌 قدم بعدی
در درس بعدی با انواع داده در TypeScript آشنا خواهیم شد!