0Pricing
TypeScript Academy · درس

Tuples: مصفوفات ذات أنواع وطول ثابت

عرّف tuples للبيانات المنظّمة ذات المواضع المعروفة

Tuples: مصفوفات ذات أنواع وطول ثابت درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

مرحبًا

Tuples هي مصفوفات ذات عدد ثابت من العناصر، بحيث يكون لكل موضع نوع محدد. وهي مناسبة تمامًا للبيانات المنظمة مثل الإحداثيات أو أزواج المفتاح والقيمة.

تعريف Tuple

يسرد نوع tuple نوع كل عنصر بالترتيب. ويكون الطول ثابتًا، ويجب أن يحتوي كل موضع على النوع المُعلن عنه.
const point: [number, number] = [10, 20];
const entry: [string, number] = ['age', 25];

الوصول إلى عناصر Tuple

يمكنك الوصول إلى عناصر tuple باستخدام الفهرس. وتعرف TypeScript النوع الموجود في كل موضع.
const pair: [string, number] = ['Alice', 30];
const name: string = pair[0]; // string
const age: number = pair[1];  // number

تفكيك Tuples

يمنح تفكيك tuple كل متغير نوعًا مستنتجًا محددًا استنادًا إلى موضعه.
const [x, y]: [number, number] = [5, 10];
console.log(x + y); // 15

Tuples مقابل المصفوفات

تحتوي المصفوفة على عدد متغير من العناصر من النوع نفسه، بينما تحتوي tuple على عدد ثابت من العناصر التي قد تختلف أنواعها، ولكل منها موضع محدد.
const arr: number[] = [1, 2, 3, 4];   // variable length
const tup: [number, string] = [1, 'a']; // fixed: 2 elements

عناصر Tuple الاختيارية

حدّد عنصر tuple على أنه اختياري باستخدام `?`. ويجب أن تأتي العناصر الاختيارية بعد العناصر المطلوبة.
type Named = [string, string?]; // name, optional nickname
const a: Named = ['Alice'];
const b: Named = ['Bob', 'Bobby'];

عناصر Rest في Tuples

يمكن أن تحتوي Tuples على عنصر rest يلتقط عددًا متغيرًا من العناصر اللاحقة من نوع محدد.
type StringAndNumbers = [string, ...number[]];
const data: StringAndNumbers = ['scores', 90, 85, 78];

عناصر Tuple ذات التسميات

أضافت TypeScript 4.0 عناصر tuple ذات التسميات. وتحسن التسميات قابلية القراءة من دون التأثير في نظام الأنواع.
type Range = [start: number, end: number];
const r: Range = [0, 100];

Tuples للقراءة فقط

أضف `readonly` لمنع تعديل tuple بعد إنشائها.
const origin: readonly [number, number] = [0, 0];
// origin[0] = 5; // Error

Tuples كقيم مُعادة من الدوال

إرجاع tuple من دالة هو نمط يُستخدم في React hooks والدوال المساعدة لإرجاع قيم متعددة بأنواع مختلفة.
function useCounter(): [number, () => void] {
  let count = 0;
  return [count, () => { count++; }];
}

استنتاج Tuples باستخدام as const

من دون `as const`، قد يُوسَّع literal الخاص بـ tuple إلى نوع مصفوفة. استخدم `as const` لاستنتاج نوع tuple الدقيق.
const pair = [1, 'hello'] as const;
// type: readonly [1, 'hello'] — not (number | string)[]

تحقق سريع

ما الذي يستنتجه TypeScript للتعبير `const t = [1, 'hello']` من دون أي تعيين نوع؟

مراجعة

تعرّف Tuples مصفوفات ذات طول ثابت ومواضع محددة الأنواع. استخدمها للإحداثيات وأزواج المفتاح والقيمة والدوال التي تُرجع قيمًا متعددة. أضف readonly لمنع التغيير، واستخدم as const لاستنتاج أنواع tuple الحرفية.

الأسئلة الشائعة

هل درس «Tuples: مصفوفات ذات أنواع وطول ثابت» مجاني؟

نعم — نص درس «Tuples: مصفوفات ذات أنواع وطول ثابت» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ماذا ستتعلم في «Tuples: مصفوفات ذات أنواع وطول ثابت»؟

عرّف tuples للبيانات المنظّمة ذات المواضع المعروفة تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «Tuples: مصفوفات ذات أنواع وطول ثابت»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. المصفوفات ذات الأنواع: T[] وArray
  2. المصفوفات للقراءة فقط والبيانات غير القابلة للتغيير
  3. Tuples: مصفوفات ذات أنواع وطول ثابت
  4. التعدادات: الثوابت الرقمية والنصية
← العودة إلى TypeScript Academy