ماڈیول اسباق (2/2)
ارے اور ٹیپلز
JavaScript میں، arrays کسی بھی قسم کے عناصر پر مشتمل ہو سکتے ہیں اور متحرک طور پر بڑھ سکتے ہیں یا سکڑ سکتے ہیں۔ TypeScript جامد قسم کی جانچ کو شامل کرتا ہے تاکہ یہ یقینی بنایا جا سکے کہ مجموعے یکساں رہیں یا ایک مقررہ قسم کے ڈھانچے کا احترام کریں۔
صفیں (یکساں مجموعے)
TypeScript میں، ایک ہی قسم کے عناصر پر مشتمل صف کی قسم کی وضاحت کرنے کے دو مساوی طریقے ہیں:
-
عنصر کی قسم کا استعمال کرتے ہوئے اس کے بعد مربع بریکٹ (
[]):TSconst numbers: number[] = [1, 2, 3]; const strings: string[] = ['a', 'b', 'c']; -
عام
Array<T>قسم کا استعمال:TSconst numbers: Array<number> = [1, 2, 3];
دونوں نحو مکمل طور پر درست ہیں، لیکن پہلا (type[]) روایتی اور سب سے عام طرز ہے۔ اگر آپ غلط قدر داخل کرنے کی کوشش کرتے ہیں (جیسے numbers.push("hello") ایک number[] صف پر)، تو TypeScript مرتب وقت کی خرابی پیدا کرے گا۔
ٹیپلز (مقررہ لمبائی کی صفیں)
A tuple ایک خاص قسم کی صف ہے جس میں عناصر کی مقررہ تعداد ہوتی ہے جہاں ہر عنصر کی پوزیشن کی بنیاد پر پہلے سے طے شدہ مخصوص قسم ہوتی ہے۔
مثال کے طور پر، اسٹیٹس کوڈ (نمبر) اور میسج (سٹرنگ) سے بنا HTTP جواب کو اسٹور کرنے کے لیے:
const response: [number, string] = [200, 'OK'];اس صورت میں:
- پہلا عنصر (
response[0]) ایکnumberہونا ضروری ہے۔ - دوسرا عنصر (
response[1]) ایکstringہونا ضروری ہے۔ - صف کو بالکل 2 عناصر کے ساتھ شروع کیا جانا چاہئے۔
صرف پڑھنے کے لیے ٹیپلز (readonly)
TypeScript میں tuples کے بارے میں ایک اہم تفصیل یہ ہے کہ رن ٹائم کے وقت وہ عام جاوا اسکرپٹ کی صفیں ہیں۔ اس کا مطلب ہے کہ تغیر پذیر طریقے جیسے .push() یا .pop() تکنیکی طور پر دستیاب ہیں اور قسم کی جانچ پڑتال کو جزوی طور پر نظرانداز کرتے ہوئے ٹیپل کی لمبائی کو تبدیل کر سکتے ہیں۔
اس رویے کو روکنے اور حقیقی تبدیلی کو نافذ کرنے کے لیے، ہم readonly موڈیفائر استعمال کر سکتے ہیں:
const point: readonly [number, number] = [10, 20];
// point.push(30); // Compile-time error!خود ہی آزمائیں۔
مشق 1: نمبروں کی صف
اسکورز نامی ایک صف کا اعلان کریں جس میں صرف نمبر ہوں اور اس کی شروعات 90، 85 اور 95 کی قدروں سے کی گئی ہو۔ صف کے لیے واضح قسم کی تشریح استعمال کریں۔ کسی بھی قسم کا استعمال نہ کریں۔
اشارہ دکھائیں۔
نحوی const اسکور استعمال کریں: number[] = ... یا Array<number>۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش 2: 3D کوآرڈینیٹ ٹوپل
ایک ٹوپل نامی پوائنٹ کا اعلان کریں جو 3D کوآرڈینیٹ (X، Y، Z کے لیے تین نمبرز) کی نمائندگی کرتا ہے اور 10، 20، 30 اقدار کے ساتھ شروع کیا گیا ہے۔ واضح قسم کی تشریح کا استعمال کریں۔
اشارہ دکھائیں۔
ٹوپل کی قسم [نمبر، نمبر، نمبر] ہونی چاہیے۔
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 3: مقام کی معلومات ٹوپل
لوکیشن انفو نام کے ایک ٹپل کا اعلان کریں جو اس کے نام کے ساتھ جغرافیائی کوآرڈینیٹ کی نمائندگی کرتا ہے۔ اس میں ہونا چاہیے: عرض البلد (نمبر)، طول البلد (نمبر) اور شہر کا نام (سٹرنگ)۔ اسے 41.9028، 12.4964، اور 'روم' کی اقدار سے شروع کریں۔
اشارہ دکھائیں۔
تین عناصر کے ساتھ ٹیپل کی وضاحت کرنے کے لیے نحو کا استعمال کریں: [نمبر، نمبر، سٹرنگ]۔
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 4: لاگ انٹری ٹوپل
لاگ لائن کی نمائندگی کرنے والے logEntry نام کے ٹیپل کا اعلان کریں۔ اس میں ترتیب سے ہونا ضروری ہے: ٹائم اسٹیمپ (نمبر)، شدت کی سطح (سٹرنگ)، اور غلطی کا پیغام (سٹرنگ)۔ اسے ٹائم اسٹیمپ 1716300000، لیول 'INFO'، اور 'Application start' پیغام کے ساتھ شروع کریں۔
اشارہ دکھائیں۔
تین عنصری ٹوپل کی وضاحت کرنے کے لیے نحو کا استعمال کریں: [نمبر، سٹرنگ، سٹرنگ] اور مخصوص قدریں تفویض کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔