مرکزی مواد پر جائیں
ماڈیول 1 · سبق 2 از 2کورس میں 2/14~10 min
ماڈیول اسباق (2/2)

ارے اور ٹیپلز

JavaScript میں، arrays کسی بھی قسم کے عناصر پر مشتمل ہو سکتے ہیں اور متحرک طور پر بڑھ سکتے ہیں یا سکڑ سکتے ہیں۔ TypeScript جامد قسم کی جانچ کو شامل کرتا ہے تاکہ یہ یقینی بنایا جا سکے کہ مجموعے یکساں رہیں یا ایک مقررہ قسم کے ڈھانچے کا احترام کریں۔


صفیں (یکساں مجموعے)

TypeScript میں، ایک ہی قسم کے عناصر پر مشتمل صف کی قسم کی وضاحت کرنے کے دو مساوی طریقے ہیں:

  1. عنصر کی قسم کا استعمال کرتے ہوئے اس کے بعد مربع بریکٹ ([]):

    TS
    const numbers: number[] = [1, 2, 3];
    const strings: string[] = ['a', 'b', 'c'];
  2. عام Array<T> قسم کا استعمال:

    TS
    const numbers: Array<number> = [1, 2, 3];

دونوں نحو مکمل طور پر درست ہیں، لیکن پہلا (type[]) روایتی اور سب سے عام طرز ہے۔ اگر آپ غلط قدر داخل کرنے کی کوشش کرتے ہیں (جیسے numbers.push("hello") ایک number[] صف پر)، تو TypeScript مرتب وقت کی خرابی پیدا کرے گا۔


ٹیپلز (مقررہ لمبائی کی صفیں)

A tuple ایک خاص قسم کی صف ہے جس میں عناصر کی مقررہ تعداد ہوتی ہے جہاں ہر عنصر کی پوزیشن کی بنیاد پر پہلے سے طے شدہ مخصوص قسم ہوتی ہے۔

مثال کے طور پر، اسٹیٹس کوڈ (نمبر) اور میسج (سٹرنگ) سے بنا HTTP جواب کو اسٹور کرنے کے لیے:

TS
const response: [number, string] = [200, 'OK'];

اس صورت میں:

  • پہلا عنصر (response[0]) ایک number ہونا ضروری ہے۔
  • دوسرا عنصر (response[1]) ایک string ہونا ضروری ہے۔
  • صف کو بالکل 2 عناصر کے ساتھ شروع کیا جانا چاہئے۔

صرف پڑھنے کے لیے ٹیپلز (readonly)

TypeScript میں tuples کے بارے میں ایک اہم تفصیل یہ ہے کہ رن ٹائم کے وقت وہ عام جاوا اسکرپٹ کی صفیں ہیں۔ اس کا مطلب ہے کہ تغیر پذیر طریقے جیسے .push() یا .pop() تکنیکی طور پر دستیاب ہیں اور قسم کی جانچ پڑتال کو جزوی طور پر نظرانداز کرتے ہوئے ٹیپل کی لمبائی کو تبدیل کر سکتے ہیں۔

اس رویے کو روکنے اور حقیقی تبدیلی کو نافذ کرنے کے لیے، ہم readonly موڈیفائر استعمال کر سکتے ہیں:

TS
const point: readonly [number, number] = [10, 20];
// point.push(30); // Compile-time error!

خود ہی آزمائیں۔

مشق 1: نمبروں کی صف

ورزش#ts.m1.l2.e1
کوششیں: 0لوڈ ہو رہا ہے…

اسکورز نامی ایک صف کا اعلان کریں جس میں صرف نمبر ہوں اور اس کی شروعات 90، 85 اور 95 کی قدروں سے کی گئی ہو۔ صف کے لیے واضح قسم کی تشریح استعمال کریں۔ کسی بھی قسم کا استعمال نہ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

نحوی const اسکور استعمال کریں: number[] = ... یا Array<number>۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش 2: 3D کوآرڈینیٹ ٹوپل

ورزش#ts.m1.l2.e2
کوششیں: 0لوڈ ہو رہا ہے…

ایک ٹوپل نامی پوائنٹ کا اعلان کریں جو 3D کوآرڈینیٹ (X، Y، Z کے لیے تین نمبرز) کی نمائندگی کرتا ہے اور 10، 20، 30 اقدار کے ساتھ شروع کیا گیا ہے۔ واضح قسم کی تشریح کا استعمال کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

ٹوپل کی قسم [نمبر، نمبر، نمبر] ہونی چاہیے۔

3 کوششوں کے بعد حل دستیاب ہے۔

مشق 3: مقام کی معلومات ٹوپل

ورزش#ts.m1.l2.e3
کوششیں: 0لوڈ ہو رہا ہے…

لوکیشن انفو نام کے ایک ٹپل کا اعلان کریں جو اس کے نام کے ساتھ جغرافیائی کوآرڈینیٹ کی نمائندگی کرتا ہے۔ اس میں ہونا چاہیے: عرض البلد (نمبر)، طول البلد (نمبر) اور شہر کا نام (سٹرنگ)۔ اسے 41.9028، 12.4964، اور 'روم' کی اقدار سے شروع کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

تین عناصر کے ساتھ ٹیپل کی وضاحت کرنے کے لیے نحو کا استعمال کریں: [نمبر، نمبر، سٹرنگ]۔

3 کوششوں کے بعد حل دستیاب ہے۔

مشق 4: لاگ انٹری ٹوپل

ورزش#ts.m1.l2.e4
کوششیں: 0لوڈ ہو رہا ہے…

لاگ لائن کی نمائندگی کرنے والے logEntry نام کے ٹیپل کا اعلان کریں۔ اس میں ترتیب سے ہونا ضروری ہے: ٹائم اسٹیمپ (نمبر)، شدت کی سطح (سٹرنگ)، اور غلطی کا پیغام (سٹرنگ)۔ اسے ٹائم اسٹیمپ 1716300000، لیول 'INFO'، اور 'Application start' پیغام کے ساتھ شروع کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

تین عنصری ٹوپل کی وضاحت کرنے کے لیے نحو کا استعمال کریں: [نمبر، سٹرنگ، سٹرنگ] اور مخصوص قدریں تفویض کریں۔

3 کوششوں کے بعد حل دستیاب ہے۔