در این جلسه نحوه کار با آرایه‌ها (Array) و تاپل‌ها (Tuple) را یاد می‌گیریم و تفاوت‌های اساسی آن‌ها را بررسی می‌کنیم.

آرایه‌ها (Arrays) در TypeScript

آرایه‌ها مجموعه‌ای از داده‌ها هستند که داخل یک متغیر ذخیره می‌شوند. تمام عناصر داخل یک آرایه معمولاً از یک نوع مشخص هستند.

روش‌های ساخت آرایه

در TypeScript دو روش رایج برای ساخت آرایه وجود دارد:

۱. استفاده از []

let numbers: number[] = [1, 2, 3, 4];
let names: string[] = ["Ali", "Sara", "Reza"];

۲. استفاده از Array<Type>

let scores: Array<number> = [10, 20, 30];
let products: Array<string> = ["Laptop", "Mouse", "Keyboard"];

نکات مهم درباره آرایه‌ها

تایپ مشخص برای عناصر

let ages: number[] = [20, 25, 30];

// ages.push("40"); ❌ Error

TypeScript اجازه نمی‌دهد مقدار غیرعددی وارد آرایه عددی کنید.


آرایه‌های چند نوعی (Union Arrays)

اگر عناصر آرایه بیشتر از یک نوع باشند:

let mixed: (string | number)[] = [1, "Ali", 25, "Reza"];

آرایه چندبعدی

let matrix: number[][] = [
  [1, 2, 3],
  [4, 5, 6],
];

تاپل‌ها (Tuples) در TypeScript چیست؟

تاپل‌ها شبیه آرایه هستند اما با یک تفاوت بزرگ:

در Tuple تعداد عناصر و نوع هر عنصر از قبل مشخص است.

مثال ساده:

let user: [string, number] = ["Ali", 25];

در این مثال:

  • عنصر اول همیشه string
  • عنصر دوم همیشه number

اگر جای این دو را عوض کنید TypeScript خطا می‌دهد:

// let user: [string, number] = [25, "Ali"]; ❌ Error

کاربردهای Tuple

ذخیره داده‌های چندتایی ثابت

let location: [number, number] = [35.6892, 51.3890];

Pairها / ساختارهای دو عضوی

let result: [boolean, string] = [true, "Success"];

نکات مهم تاپل‌ها

۱. تعداد عناصر مهم است

let data: [string, number] = ["Books", 20];

// data.push(30); 🚫 (قبلاً مسدود بود؛ نسخه‌های جدید TS اجازه می‌دهند اما توصیه نمی‌شود)

پس بهتر است فقط از مقداردهی اولیه یا تغییر مستقیم استفاده کنید.


۲. خوانایی بهتر

در موقعیت‌هایی که ترتیب عناصر مهم است (مثلاً [id، title]) تاپل‌ها انتخاب مناسبی هستند.


تفاوت آرایه و تاپل در TypeScript

1. آزادی در ساختار

  • Array: ساختار انعطاف‌پذیر — هر تعداد عنصر، نوع یکسان
  • Tuple: ساختار محدود — تعداد و نوع عناصر ثابت است

2. تایپ‌گذاری

  • آرایه‌ها با [Type[]] تعریف می‌شوند
  • تاپل‌ها با [Type1, Type2, ...]

3. کاربرد

  • آرایه‌ها برای لیست‌های بزرگ و داده‌های تکرارپذیر
  • تاپل‌ها برای داده‌های ساختاری کوچک و مشخص (مثل مختصات، نتیجه عملیات اجرایی، ورودی ثابت)

مثال‌های کاربردی ترکیبی

مثال: لیست کاربران با Tuple برای اطلاعات هر شخص

let users: [string, number][] = [
  ["Ali", 30],
  ["Sara", 25],
  ["Reza", 40]
];

مثال: خروجی چندگانه از تابع با Tuple

function getUser(): [string, boolean] {
  return ["Ali", true];
}

جمع‌بندی

در این جلسه یاد گرفتیم:

  • آرایه‌ها چگونه ساخته و تایپ‌گذاری می‌شوند
  • تفاوت روش‌های تعریف آرایه: Type[] و Array<Type>
  • تاپل‌ها چیستند و چه زمانی باید از آن‌ها استفاده کرد
  • تفاوت آرایه و تاپل از نظر ساختار و کاربرد
  • مثال‌هایی از آرایه‌های چندبعدی و تاپل‌های کاربردی

در جلسه بعدی سراغ enum، object type و type alias می‌رویم تا ساختارهای داده پیچیده‌تر را بشناسیم.

دسترسی به ویدیوهای کامل دوره

برای مشاهده ویدیوهای کامل هر جلسه، دریافت تمرین‌ها، فایل‌ها و پشتیبانی، می‌توانید دوره کامل را تهیه کنید.