المصفوفات محددة النوع متعددة الأبعاد
جزء من قسم مقدمة إلى TypeScript في رحلة JavaScript على Coddy. الدرس 19 من 73.
تتيح لك TypeScript إنشاء مصفوفات متعددة الأبعاد للتعامل مع هذا النوع من البيانات المهيكلة مع أمان تام للأنواع.
المصفوفة متعددة الأبعاد هي في الأساس مصفوفة من المصفوفات. المثال الأكثر شيوعاً هو المصفوفة ثنائية الأبعاد (2D)، والتي يمكنك تخيلها كشبكة أو مصفوفة رياضية. لتحديد نوع مصفوفة ثنائية الأبعاد في TypeScript، تستخدم صيغة Type[][]:
let grid: number[][] = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
let gameBoard: string[][] = [
["X", "O", "X"],
["O", "X", "O"],
["X", "O", "X"]
];للوصول إلى العناصر في مصفوفة متعددة الأبعاد، يمكنك استخدام مجموعات متعددة من الأقواس المربعة. يحدد الفهرس الأول الصف، ويحدد الفهرس الثاني العمود داخل ذلك الصف:
let matrix: number[][] = [[1, 2], [3, 4]];
console.log(matrix[0][1]); // 2 (الصف الأول، العمود الثاني)
console.log(matrix[1][0]); // 3 (الصف الثاني، العمود الأول)يضمن TypeScript أن كل مصفوفة داخلية تحتوي فقط على عناصر من النوع المحدد، مما يمنحك نفس مزايا أمان النوع التي تحصل عليها مع المصفوفات العادية، ولكنها ممتدة لتعمل مع هياكل البيانات المعقدة التي تشبه الشبكة.
التحدي
سهلأنشئ مصفوفة ثنائية الأبعاد باسم gameGrid يمكنها الاحتفاظ بالأرقام وقم بتهيئتها كمصفوفة 3x3 بالقيم التالية:
- الصف الأول:
1،2،3 - الصف الثاني:
4،5،6 - الصف الثالث:
7،8،9
أنشئ مصفوفة أخرى ثنائية الأبعاد باسم chessBoard يمكنها الاحتفاظ بالنصوص وقم بتهيئتها كمصفوفة 2x2 بالقيم التالية:
- الصف الأول:
"white"،"black" - الصف الثاني:
"black"،"white"
قم بالوصول إلى العنصر الموجود في الصف الثاني، العمود الأول من مصفوفة gameGrid وقم بطباعته.
قم بالوصول إلى العنصر الموجود في الصف الأول، العمود الثاني من مصفوفة chessBoard وقم بطباعته.
اطبع كل قيمة في سطر منفصل بالترتيب المحدد أعلاه.
جرّب بنفسك
// TODO: اكتب كودك هنا
// أنشئ مصفوفة gameGrid ثنائية الأبعاد (مصفوفة 3x3 مع الأرقام 1-9)
// أنشئ مصفوفة chessBoard ثنائية الأبعاد (مصفوفة 2x2 مع قيم نصية)
// قم بالوصول إلى العنصر الموجود في الصف الثاني، العمود الأول من gameGrid واطبعه
// قم بالوصول إلى العنصر الموجود في الصف الأول، العمود الثاني من chessBoard واطبعهيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس مقدمة إلى TypeScript
1البداية مع TS
ما هي TypeScript؟لماذا نستخدم TypeScript؟أول كود TypeScript لكعملية الـ Compilation والأخطاءملخص: مقدمة في TS4التعامل مع الدوال
تحديد أنواع المعاملات وقيم الإرجاعتحديد أنواع Arrow Functionsنوع الإرجاع 'void'المعاملات الاختيارية باستخدام '?'القيم الافتراضية للمعاملاتتحديد أنواع Rest Parametersتعريف أنواع الدوالملخص: بناء دوال محددة الأنواع2الأنواع الأساسية
الأنواع الأساسية: str, num, booleanالنوع 'any': مخرج الهروبالنوع 'unknown'التعامل مع 'null' و 'undef'استنتاج الأنواع في التطبيق العمليتوضيحات الأنواع الصريحةمراجعة: تدريب على الأنواع الأساسية5الأنواع: الأسماء المستعارة، الاتحادات والتقاطعات
الأسماء المستعارة للأنواع الأساسية (Primitives)أنواع الاتحاد ('|')التعامل مع أنواع الاتحادالأنواع الحرفية (Literal Types)أنواع التقاطع ('&')دمج الأسماء المستعارة للأنواعملخص: تركيبات الأنواع المتقدمة3هياكل البيانات: المصفوفات و Tuple
المصفوفات محددة النوع (Typed Arrays)معدل 'readonly' للمصفوفاتما هو الـ Tuple؟تعريف والوصول إلى الـ Tuplesتفكيك الـ Tuples (Destructuring)الـ Tuples للقراءة فقط (Readonly)المصفوفات محددة النوع متعددة الأبعاداستخدام Spread Operator مع المصفوفاتملخص: المصفوفات و Tuples6تحديد أنواع الكائنات والواجهات
توصيف أنواع الكائنات المضمنة (Inline)الأسماء المستعارة للأنواع (Type Aliases) للكائناتمقدمة عن الواجهات (Interfaces)الواجهات (Interfaces) مقابل الأسماء المستعارة للأنواع (Type Aliases)الخصائص الاختيارية وخصائص القراءة فقط (Readonly)توسيع الواجهات والأنواعإضافة الدوال (Methods) إلى الواجهاتملخص: تحديد هياكل الكائناتتدرّب بنفسك: Playground لـ TypeScript