کی میز کے مندرجات[چھپائیں][دکھائیں]
- 1. TypeScript بالکل کیا ہے، اور یہ JavaScript سے کیسے مختلف ہے؟
- 2. TypeScript کی کچھ قابل ذکر خصوصیات کیا ہیں؟
- 3. TypeScript استعمال کرنے کے کچھ فوائد کیا ہیں؟
- 4. TypeScript استعمال کرنے کی کچھ خرابیاں کیا ہیں؟
- 5. TypeScript کے اجزاء بالکل کیا ہیں؟
- 6. کیا آپ ٹائپ اسکرپٹ میں انٹرفیس کی وضاحت کر سکتے ہیں؟
- 7. TypeScript میں متغیرات کیا ہیں اور مختلف طریقوں سے ان کا اعلان کیسے کیا جاتا ہے؟
- 8. ایک انٹرفیس کے ذیلی سیٹ کو ایک نئی قسم بنانے کے لیے کیسے استعمال کیا جا سکتا ہے؟
- 9. 'کسی بھی' قسم سے آپ کا کیا مطلب ہے، اور مجھے ان کا استعمال کب کرنا چاہیے؟
- 10. TypeScript اختیاری جامد ٹائپ شدہ نحو کے ساتھ ایک زبان کیسے ہے؟
- 11. TypeScript میں، ماڈیولز کا کیا مطلب ہے؟
- 12. TypeScript میں "enums" کیسے کام کرتے ہیں؟
- 13. کیا اندرونی ماڈیول کو بیرونی ماڈیول سے ممتاز کرتا ہے؟
- 14. TypeScript کے گمنام فنکشن کا کیا مطلب ہے؟
- 15. ٹائپ اسکرپٹ میں، نام کی جگہ کیا ہے اور آپ اس کا اعلان کیسے کرتے ہیں؟
- 16. TypeScript کس رسائی میں ترمیم کرنے والوں کو سپورٹ کرتا ہے؟
- 17. کیا TypeScript فنکشن اوور لوڈنگ کی اجازت دیتا ہے؟
- 18. TypeScript فنکشنز میں اختیاری دلائل کی اجازت کیسے دیتا ہے؟
- 19. var، let، اور const ایک دوسرے سے کیسے مختلف ہوتے ہیں؟
- 20. TypeScript میں، ڈیکوریٹرز کی وضاحت کریں؟
- 21. TypeScript میں، Mixins کا کیا مطلب ہے؟
- 22. TypeScript میں Type Aliases بالکل کیا ہیں؟
- 23. اصطلاح "اسکوپ متغیر" کا کیا مطلب ہے؟
- 24. noImplicitAny بالکل کس کے لیے استعمال ہوتا ہے؟
- 25. یونین اور انٹرسیکشن کی اقسام ایک دوسرے سے کیسے مختلف ہیں؟
- 26. آپ TypeScript Declare Keyword کی وضاحت کیسے کرتے ہیں؟
- 27. TypeScript میں، generics کیا ہیں؟
- 28. TypeScript میں JSX کا کیا مطلب ہے؟
- 29. TypeScript Ambients کیا ہیں اور مجھے ان کا استعمال کب کرنا چاہیے؟
- 30. ٹائپ اسکرپٹ میں تجریدی کلاس سے آپ کا کیا مطلب ہے؟
- 31. ٹائپ اسکرپٹ میپ فائل دراصل کیا ہے؟
- 32. TypeScript میں، قسم کے دعوے کیا ہیں؟
- نتیجہ
مائیکروسافٹ نے TypeScript پروگرامنگ زبان تیار کی ہے اور اس کی حمایت جاری رکھے ہوئے ہے۔ ایک اختیار کے طور پر جامد ٹائپنگ کے اضافے کے ساتھ، یہ JavaScript کا ایک مصنوعی سپر سیٹ ہے۔
بڑے پیمانے پر ایپلیکیشن ڈویلپمنٹ لینگویج TypeScript جاوا اسکرپٹ کو مرتب کرتی ہے۔ چونکہ TypeScript JavaScript کا ایک سپر سیٹ ہے، اس لیے JavaScript میں لکھے گئے پروگرام بھی TypeScript میں درست ہیں۔
اگر آپ کسی میں شرکت کر رہے ہیں تو یہاں سب سے عام TypeScript ڈویلپر انٹرویو کے سوالات اور جوابات کی ایک جامع فہرست ہے۔
1. TypeScript بالکل کیا ہے، اور یہ JavaScript سے کیسے مختلف ہے؟
JavaScript کا ایک سپر سیٹ، TypeScript معیاری جاوا اسکرپٹ پر مرتب کرتا ہے۔ تصوراتی نقطہ نظر سے، TypeScript اور JavaScript SASS اور CSS سے ملتے جلتے ہیں۔
دوسرے الفاظ میں، TypeScript ES6 JavaScript ہے جس میں کچھ مزید صلاحیتیں ہیں۔ جاوا اسکرپٹ ایک اسکرپٹنگ زبان ہے جو ازگر سے زیادہ مشابہت رکھتی ہے، جب کہ ٹائپ اسکرپٹ ایک آبجیکٹ پر مبنی، جامد طور پر ٹائپ کی جانے والی زبان ہے جس کا موازنہ جاوا اور C# سے کیا جاسکتا ہے۔
کلاسز اور انٹرفیس سبھی TypeScript کے آبجیکٹ پر مبنی ڈیزائن کا حصہ ہیں، اور ٹائپ انفرنس ان بہت سے ٹولز میں سے ایک ہے جو اس کی جامد ٹائپنگ کی بدولت دستیاب ہیں۔
JavaScript .js ایکسٹینشن والی فائل میں لکھا جاتا ہے، جب کہ TypeScript کو .ts ایکسٹینشن والی فائل میں لکھا جاتا ہے۔
JavaScript کے برعکس، TypeScript کوڈ براہ راست کسی براؤزر میں یا کسی دوسرے پلیٹ فارم پر نہیں چلایا جا سکتا اور براؤزر کے ذریعے سمجھ میں نہیں آتا۔ ٹارگٹ پلیٹ فارم پھر سادہ جاوا اسکرپٹ چلائے گا جو TypeScript کے ٹرانسپلر کا استعمال کرتے ہوئے .ts فائلوں سے تیار کیا گیا تھا۔
2. TypeScript کی کچھ قابل ذکر خصوصیات کیا ہیں؟
- جامد ٹائپنگ TypeScript کی ایک خصوصیت ہے جو تالیف کے دوران قسم کی جانچ میں مدد کرتی ہے۔ لہذا، اسکرپٹ پر عمل کیے بغیر بھی، آپ کوڈ لکھتے وقت اس میں غلطیوں کا پتہ لگا سکتے ہیں۔
- آئٹمز کو شامل کرنے یا ہٹانے کے لیے ٹائپ اسکرپٹ کا استعمال کرتے ہوئے DOM کو تبدیل کیا جا سکتا ہے۔
- ونڈوز، میک او ایس اور لینکس سمیت کسی بھی آپریٹنگ سسٹم میں ٹائپ اسکرپٹ کمپائلر انسٹال ہو سکتا ہے۔
- کلاسز، انٹرفیس، اور ماڈیولز TypeScript کے ذریعہ پیش کردہ کچھ فنکشنلٹیز ہیں۔ اس طرح یہ کلائنٹ سائڈ اور سرور سائڈ دونوں کی ترقی کے لیے آبجیکٹ پر مبنی کوڈ بنا سکتا ہے۔
- ECMAScript 2015 (ES 6, 7) کی زیادہ تر خصوصیات پہلے سے ہی ٹائپ اسکرپٹ میں شامل ہیں، بشمول کلاس، انٹرفیس، ایرو فنکشنز وغیرہ۔
- اگر آپ JavaScript کی متحرک ٹائپنگ کا استعمال کر رہے ہیں، TypeScript اختیاری جامد ٹائپنگ کو بھی سپورٹ کرتا ہے۔
3. TypeScript استعمال کرنے کے کچھ فوائد کیا ہیں؟
- کوئی بھی JavaScript انجن یا براؤزر TypeScript کو چلا سکتا ہے کیونکہ یہ تیز، سیکھنے میں آسان اور تیزی سے چلتا ہے۔
- یہ جاوا اسکرپٹ کی طرح ہی نحو اور الفاظ کا اشتراک کرتا ہے۔
- یہ بیک اینڈ ڈویلپرز کے ذریعے فرنٹ اینڈ کوڈ کی تیز تر تحریر کو سہولت فراہم کرتا ہے۔
- اس میں ES6 اور ES7 صلاحیتیں شامل ہیں جو کر سکتی ہیں۔ جاوا اسکرپٹ میں فنکشن ES5 انجن جیسے Node.js۔
- موجودہ JavaScript لائبریریاں جیسے Jquery، D3.js، وغیرہ کو ڈیفینیشن فائل کے ذریعے سپورٹ کیا جاتا ہے، جس میں the.d.ts ایکسٹینشن ہے۔
- ایک JavaScript اسکرپٹ جو پہلے سے موجود ہے TypeScript کوڈ کو طلب کر سکتا ہے۔ یہ بغیر کسی رکاوٹ کے موجودہ جاوا اسکرپٹ کے فریم ورکس اور لائبریریوں کے ساتھ ضم ہوجاتا ہے۔
4. TypeScript استعمال کرنے کی کچھ خرابیاں کیا ہیں؟
- TypeScript کے ساتھ کوڈنگ کے لیے ایک طویل تالیف کے عمل کی ضرورت ہوتی ہے۔
- یہ ان کلاسوں کی حمایت نہیں کرتا جو خلاصہ ہیں۔
- ٹائپ ڈیفینیشن فائلوں کا معیار ایک مسئلہ ہے۔
- کسی بھی فریق ثالث کی لائبریری کو استعمال کرنے کے لیے ڈیفینیشن فائل کا ہونا ضروری ہے۔
- اگر ہم براؤزر میں TypeScript ایپلیکیشن چلانا چاہتے ہیں تو TypeScript کو JavaScript میں تبدیل کرنے کے لیے ایک تالیف کا مرحلہ ضروری ہے۔
- JavaScript کو ویب ڈویلپرز کئی سالوں سے استعمال کر رہے ہیں، اور TypeScript کوئی نئی چیز فراہم نہیں کرتا ہے۔
5. TypeScript کے اجزاء بالکل کیا ہیں؟
TypeScript میں، اجزاء کی تین اہم قسمیں ہیں، بشمول:
- زبان: اس میں قسم، مطلوبہ الفاظ اور نحو کے لیے تشریحات شامل ہیں۔
- ٹائپ اسکرپٹ کمپائلر: TypeScript ہدایات کا اس کمپائلر (tsc) کے ذریعے جاوا اسکرپٹ میں ترجمہ کیا جاتا ہے۔
- ٹائپ اسکرپٹ لینگویج سروس: لینگویج سروس بنیادی کمپائلر پروسیس کے اوپر ایک دوسری پرت کے طور پر ایڈیٹر جیسی ایپس پیش کرتی ہے۔ عام ایڈیٹنگ آپریشنز کے معیاری سیٹ کو لینگویج سروس سے تعاون حاصل ہے۔
6. کیا آپ ٹائپ اسکرپٹ میں انٹرفیس کی وضاحت کر سکتے ہیں؟
TypeScript اداروں کے نحو کی وضاحت کرنے کے لیے انٹرفیس کا استعمال کرتا ہے۔ دوسرے الفاظ میں، ڈیٹا فارم جیسے اشیاء یا اشیاء کی ایک صف کو انٹرفیس کا استعمال کرتے ہوئے بیان کیا جا سکتا ہے۔ انٹرفیس کلیدی لفظ، انٹرفیس کا نام، اور اس کی تعریف انٹرفیس کا اعلان کرنے کے لیے استعمال ہوتی ہے۔ آئیے صارف آبجیکٹ کے بنیادی انٹرفیس کا جائزہ لیں۔
متغیر کی قسم کو پھر انٹرفیس کا استعمال کرتے ہوئے سیٹ کیا جا سکتا ہے (اسی طرح جس طرح آپ کسی متغیر کو قدیم قسمیں تفویض کرتے ہیں)۔ انٹرفیس کی خصوصیات پھر صارف کی قسم کے متغیر سے ملیں گی۔
آپ کے TypeScript پروجیکٹ کو انٹرفیس سے فائدہ ہوتا ہے کیونکہ وہ یکسانیت فراہم کرتے ہیں۔ مزید برآں، انٹرفیس IDE خودکار تکمیل کی صلاحیتوں کو بڑھا کر اور کنسٹرکٹرز اور طریقوں کو صحیح اقدار فراہم کرنے کی ضمانت دے کر آپ کے پروجیکٹ کے ٹولز کو بڑھاتے ہیں۔
7. TypeScript میں متغیرات کیا ہیں اور مختلف طریقوں سے ان کا اعلان کیسے کیا جاتا ہے؟
ایک متغیر میموری کا خاص طور پر نامزد کردہ علاقہ ہے جو اقدار کو رکھنے کے لیے استعمال ہوتا ہے۔ ایک بڑی آنت (:) کو متغیر کے نام کے بعد رکھا جاتا ہے اور ٹائپ اسکرپٹ میں متغیر کا اعلان کرتے وقت قسم کے بعد کیا جاتا ہے۔ ہم var کلیدی لفظ کے ساتھ متغیرات کا اعلان کرتے ہیں، بالکل اسی طرح جیسے JavaScript میں۔
ٹائپ اسکرپٹ میں متغیر کا اعلان کرتے وقت کچھ رہنما خطوط کا مشاہدہ کرنا ضروری ہے:
- نام نمبر سے شروع نہیں ہو سکتا۔
- متغیر نام میں حروف یا اعداد ہونے چاہئیں۔
- ڈالر کی علامت ($) اور انڈر سکور (_) واحد خصوصی حروف ہیں جن کی اس فیلڈ میں اجازت ہے۔
8. ایک انٹرفیس کے ذیلی سیٹ کو ایک نئی قسم بنانے کے لیے کیسے استعمال کیا جا سکتا ہے؟
موجودہ قسم یا انٹرفیس کی فراہمی اور نئی قسم سے خارج کی جانے والی کلیدوں کا انتخاب کرکے، آپ یوٹیلیٹی ٹائپ کو چھوڑ کر TypeScript میں ایک نئی قسم بنا سکتے ہیں۔
مندرجہ ذیل مثال یہ ظاہر کرتی ہے کہ کس طرح ایک نئی قسم کی تعمیر کی جاتی ہے جسے UserPreview کہتے ہیں جو یوزر انٹرفیس پر مبنی ہے لیکن ای میل پراپرٹی کو خارج کرتی ہے۔
9. 'کسی بھی' قسم سے آپ کا کیا مطلب ہے، اور مجھے ان کا استعمال کب کرنا چاہیے؟
بعض اوقات آپ کو متغیر میں قدر بچانے کی ضرورت ہوتی ہے، لیکن آپ کو پہلے سے متغیر کی قسم کے بارے میں یقین نہیں ہوتا ہے۔ قیمت صارف کے ان پٹ یا API کی درخواست سے نکل سکتی ہے، مثال کے طور پر۔ آپ "کسی بھی" قسم کا استعمال کرکے متغیر قسم کو کسی بھی قسم کی قدر دے سکتے ہیں۔
جب متغیر کی قسم واضح طور پر متعین نہیں کی جاتی ہے اور مرتب کرنے والا سیاق و سباق سے اس کا تعین کرنے سے قاصر ہوتا ہے، TypeScript کا خیال ہے کہ متغیر کسی بھی قسم کا ہے۔
10. TypeScript اختیاری جامد ٹائپ شدہ نحو کے ساتھ ایک زبان کیسے ہے؟
یہ ممکن ہے کہ مرتب کرنے والے کو ٹائپ اسکرپٹ میں متغیر کی قسم کو نظر انداز کرنے کی ہدایت دی جائے کیونکہ یہ اختیاری طور پر جامد ٹائپ کیا جاتا ہے۔ کسی بھی ڈیٹا کی قسم کو متغیر کو کسی بھی قسم کی قدر تفویض کرنے کے لیے استعمال کیا جا سکتا ہے۔ جب مرتب کیا جا رہا ہے، TypeScript کوئی غلطی کی جانچ نہیں کرے گا۔
11. TypeScript میں، ماڈیولز کا کیا مطلب ہے؟
ماڈیولز کا استعمال کرتے ہوئے متعلقہ متغیرات، فنکشنز، کلاسز، انٹرفیس وغیرہ کو اکٹھا کرنا موثر ہے۔ اسے استعمال کیا جا سکتا ہے، لیکن عالمی دائرہ کار میں نہیں، صرف اپنے دائرہ کار میں۔
جوہر میں، ماڈیول کے متعین متغیرات، فنکشنز، کلاسز اور انٹرفیس تک ماڈیول کے باہر سے براہ راست رسائی حاصل نہیں کی جا سکتی۔
ایکسپورٹ کی ورڈ کو ماڈیول بنانے کے لیے استعمال کیا جا سکتا ہے، جبکہ امپورٹ کی ورڈ کو کسی دوسرے ماڈیول میں شامل کرنے کے لیے استعمال کیا جا سکتا ہے۔
12. TypeScript میں "enums" کیسے کام کرتے ہیں؟
نامزد کنسٹنٹ کے مجموعہ کی وضاحت کا ایک طریقہ enums یا enumerated اقسام کا استعمال کرنا ہے۔ ان ڈیٹا ڈھانچے کی ایک مقررہ لمبائی اور مقررہ اقدار کا مجموعہ ہے۔
TypeScript میں دی گئی قدر کے لیے متبادلات کے مجموعے کی نمائندگی کرتے وقت، enums کو کثرت سے کلیدی/قدر کے جوڑوں کے سیٹ کا استعمال کرتے ہوئے امکانات کو بیان کرنے کے لیے استعمال کیا جاتا ہے۔
آئیے ایک اینوم کی ایک مثال دیکھتے ہیں جو صارف کی مختلف اقسام فراہم کرنے کے لیے استعمال ہوتا ہے۔
تالیف کے بعد TypeScript کے ذریعے Enums کو اندرونی طور پر باقاعدہ JavaScript اشیاء میں تبدیل کیا جاتا ہے۔ لہذا enums کا استعمال کئی الگ الگ const متغیرات کے استعمال سے بہتر ہے۔
آپ کا کوڈ ٹائپ سیف اور سمجھنا آسان ہے کیونکہ اس گروپنگ جو کہ enums فراہم کرتی ہے۔
13. کیا اندرونی ماڈیول کو بیرونی ماڈیول سے ممتاز کرتا ہے؟
اندرونی ماڈیول:
- اندرونی ماڈیولز ٹائپ اسکرپٹ کے پچھلے تکرار کی ایک خصوصیت تھے۔
- اندرونی ماڈیولز کے نام اور باڈی کی وضاحت ModuleDeclarations کے ذریعے کی گئی ہے۔
- یہ دوسرے ماڈیولز کے ممبر ہیں جو مقامی یا برآمد شدہ ہیں۔
- کلاسز، انٹرفیس، فنکشنز، اور متغیرات کو اندرونی ماڈیولز میں ایک ساتھ گروپ کیا جاتا ہے، جنہیں دوسرے ماڈیول میں ایکسپورٹ کیا جا سکتا ہے۔
بیرونی ماڈیول:
- تازہ ترین ورژن میں، بیرونی ماڈیولز کو ماڈیولز کہا جاتا ہے۔
- ان کو بنانے کے لیے ایک علیحدہ سورس فائل کا استعمال کیا جاتا ہے جسے ایکسٹرنل ماڈیول کہا جاتا ہے، اور ہر ایک کے پاس کم از کم ایک درآمد یا برآمد کا اعلان ہوتا ہے۔
- تازہ ترین ورژن میں، بیرونی ماڈیولز کو ماڈیولز کہا جاتا ہے۔
- ماڈیول کی تعریفوں کے اندرونی بیانات کو بیرونی ماڈیولز کا استعمال کرتے ہوئے چھپایا جا سکتا ہے، صرف متعین متغیر سے منسلک طریقے اور دلائل نظر آتے ہیں۔
14. TypeScript کے گمنام فنکشن کا کیا مطلب ہے؟
گمنام کے طور پر درجہ بند فنکشنز میں شناخت کنندہ کے طور پر فنکشن کا نام نہیں ہے۔ یہ معمولات رن ٹائم کے دوران متحرک طور پر بیان کیے جاتے ہیں۔ باقاعدہ فنکشنز کی طرح، گمنام فنکشن بھی ان پٹ لے سکتے ہیں اور نتائج پیدا کر سکتے ہیں۔
ایک گمنام فنکشن بن جانے کے بعد عام طور پر ناقابل رسائی ہوتا ہے۔ متغیر کسی گمنام فنکشن کو تفویض کیا جا سکتا ہے۔
15. ٹائپ اسکرپٹ میں، نام کی جگہ کیا ہے اور آپ اس کا اعلان کیسے کرتے ہیں؟
نام کی جگہ منطقی طور پر افعال کو گروپ کرتی ہے۔ یہ اندرونی طور پر ٹائپ اسکرپٹ لیگیسی کوڈ کو محفوظ رکھتے ہیں۔ یہ خاص کنکشن کے ساتھ خصلتوں اور چیزوں کو گھیرے ہوئے ہے۔
نام کی جگہ کا دوسرا نام اندرونی ماڈیول ہے۔ مربوط فعالیت کا مجموعہ فراہم کرنے کے لیے انٹرفیس، کلاسز، فنکشنز، اور متغیر سبھی کو نام کی جگہ میں شامل کیا جا سکتا ہے۔
16. TypeScript کس رسائی میں ترمیم کرنے والوں کو سپورٹ کرتا ہے؟
درج ذیل مثالیں ہیں کہ کس طرح TypeScript میں عوامی، نجی اور محفوظ رسائی کے ترمیم کاروں کو کلاس ممبر کی رسائی کو کنٹرول کرنے کے لیے استعمال کیا جا سکتا ہے:
- عوامی - رسائی کلاس کے ہر ممبر، اس کی تمام نسلی کلاسوں، اور کلاس کی ہر مثال کے لیے دستیاب ہے۔
- محفوظ - وہ کلاس کے ہر رکن اور اس کے تمام ذیلی طبقات کے لیے قابل رسائی ہیں۔ تاہم، کلاس کی مثال تک رسائی نہیں ہو سکتی۔
- ان تک نجی رسائی صرف کلاس ممبران تک محدود ہے۔
چونکہ JavaScript آسان ہے، اگر رسائی میں ترمیم کرنے والا نہیں دیا گیا ہے، تو اسے عوامی سمجھا جاتا ہے۔
17. کیا TypeScript فنکشن اوور لوڈنگ کی اجازت دیتا ہے؟
ہاں، فنکشن اوور لوڈنگ کو ٹائپ اسکرپٹ کے ذریعے سپورٹ کیا جاتا ہے۔ لیکن اب یہ کیا جا رہا ہے عجیب ہے۔ لہذا، ٹائپ اسکرپٹ کے ساتھ اوورلوڈنگ کرتے وقت، مختلف قسم کے دستخطوں کے ساتھ صرف ایک عمل درآمد ہوتا ہے۔
جب کہ دوسرے دستخط میں ٹائپ ٹیکسٹ کا پیرامیٹر ہوتا ہے، پہلے دستخط میں ٹائپ نمبر کا صرف ایک پیرامیٹر ہوتا ہے۔ تیسرا فنکشن، جس میں کسی بھی قسم کی دلیل شامل ہے، اصل نفاذ پر مشتمل ہے۔
نفاذ پھر فراہم کردہ پیرامیٹر کی قسم کا تعین کرتا ہے اور اس عزم کے مطابق کوڈ کا ایک الگ سیکشن چلاتا ہے۔
18. TypeScript فنکشنز میں اختیاری دلائل کی اجازت کیسے دیتا ہے؟
جاوا اسکرپٹ کے برعکس، اگر آپ کسی فنکشن کو کال کرنے کی کوشش کرتے ہیں تو درست رقم اور پیرامیٹرز کی قسم کی وضاحت کیے بغیر، جیسا کہ اس کے فنکشن کے دستخط میں بیان کیا گیا ہے، تو TypeScript کمپائلر ایک غلطی پیدا کرے گا۔
آپ اس مسئلے کو حل کرنے کے لیے سوالیہ نشان کی علامت ('؟') کو استعمال کر کے اختیاری پیرامیٹرز استعمال کر سکتے ہیں۔ یہ ظاہر کرتا ہے کہ اختیاری پیرامیٹرز کو "؟" کا اضافہ کر کے ظاہر کیا جا سکتا ہے۔ ان لوگوں کے لیے جو قیمت وصول کرسکتے ہیں یا نہیں کرسکتے ہیں۔
19. var، let، اور const ایک دوسرے سے کیسے مختلف ہوتے ہیں؟
متغیر کا اعلان کرنے کے تین مختلف طریقے TypeScript کے ذریعہ پیش کیے جاتے ہیں، ہر ایک تجویز کردہ درخواست کے ساتھ۔
متغیر: JavaScript کے var متغیرات کے رویے اور اسکوپنگ رہنما خطوط کے ساتھ عالمی یا فنکشن کے دائرہ کار والے متغیر کا اعلان کرتا ہے۔ متغیرات کو ان کی قدروں کا تعین کرنے کی ضرورت نہیں ہے جب ان کا اعلان کیا جاتا ہے۔
پرواز: مقامی طور پر اسکوپڈ بلاک متغیر کا اعلان کرتا ہے۔ متغیرات کو متغیر کی قیمت مقرر کرنے کی ضرورت نہیں ہے جب ان کا اعلان کیا جاتا ہے۔ اصطلاح "بلاک اسکوپڈ لوکل متغیر" سے مراد ایک متغیر ہے جس تک صرف اس بلاک کے اندر سے ہی رسائی حاصل کی جاسکتی ہے جس میں یہ موجود ہے، جیسے کہ فنکشن، if/else بلاک، یا ایک لوپ۔ متغیرات کو اعلان کرنے سے پہلے پڑھا یا لکھا نہیں جا سکتا، var کے برعکس۔
حلقے: بلاک اسکوپڈ مستقل کے لیے ایک قدر کا اعلان کرتا ہے جسے شروع کرنے کے بعد تبدیل نہیں کیا جا سکتا۔ Const متغیرات کو اعلان کرنے سے پہلے شروع کرنے کی ضرورت ہے۔ متغیرات کے لیے جو اپنے پورے وجود کے دوران مستقل رہتے ہیں، یہ بہترین ہے۔
20. TypeScript میں، ڈیکوریٹرز کی وضاحت کریں؟
ایک ایکسسر، پراپرٹی، پیرامیٹر، کلاس، فنکشن، یا ڈیکوریٹر سبھی کو ڈیکوریٹر کے طور پر ایک مخصوص انداز میں قرار دیا جا سکتا ہے۔ ڈیکوریٹرز @expression کے سابقہ کے ساتھ فنکشنز ہیں جن کو رن ٹائم کے وقت ڈیکوریشن ڈیکلریشن کے بارے میں تفصیلات کے ساتھ طلب کیا جائے گا۔
ڈیکوریٹرز کے کام کرنے کے لیے اظہار کو فنکشن کا اندازہ لگانا چاہیے۔
TypeScript Decorators موجودہ کوڈ میں تشریحی طور پر تشریحات اور معلومات شامل کرنے کا ہدف فراہم کرتے ہیں۔
ہماری tsconfig.json فائل میں یا کمانڈ لائن پر، آپ کو ڈیکوریٹرز کے لیے تجرباتی تعاون کو فعال کرنے کے لیے تجرباتی ڈیکوریٹرز کمپائلر آپشن کو فعال کرنا چاہیے:
21. TypeScript میں، Mixins کا کیا مطلب ہے؟
مکسین جاوا اسکرپٹ میں دوبارہ قابل استعمال حصوں سے کلاسز بنانے اور مزید پیچیدہ مکمل کلاسز بنانے کے لیے جزوی کلاسوں کو ملانے کی ایک تکنیک ہے۔
تصور سیدھا ہے: فنکشن B کلاس A کو قبول کرتا ہے اور اس کی فعالیت کو حاصل کرنے کے لیے کلاس A کو توسیع دینے والی کلاس B کے برخلاف ایک نئی کلاس واپس کرتا ہے۔ اس معاملے میں فنکشن B ایک مکسن ہے۔
22. TypeScript میں Type Aliases بالکل کیا ہیں؟
قسم کے عرفی نام ایک قسم کا نام تبدیل کرتے ہیں۔ قسم کے عرفی نام، جیسے انٹرفیس، پرائمیٹوز، یونینز، ٹیپلز، اور کسی دوسری قسم کے نام کے لیے استعمال کیے جا سکتے ہیں جن کی وضاحت ہاتھ سے کرنی پڑتی ہے۔
علیزنگ ایک نئی قسم نہیں بناتا؛ بلکہ، یہ ایک موجودہ قسم کا نام تبدیل کرتا ہے۔ ایک پرائمٹیو کا عرفیت کرنا واقعی عملی نہیں ہے، حالانکہ یہ دستاویزات کے لیے فائدہ مند ہو سکتا ہے۔
قسم کے عرفی نام، جیسے انٹرفیس، عالمگیر ہو سکتے ہیں۔ آپ کو صرف ٹائپ پیرامیٹرز کو شامل کرنا ہے اور عرفی اعلان کے دائیں طرف استعمال کرنا ہے۔
23. اصطلاح "اسکوپ متغیر" کا کیا مطلب ہے؟
JavaScript مقامی اور عالمی دائرہ کار متغیر دونوں کو سپورٹ کرتا ہے۔ دائرہ کار اشیاء، متغیرات اور افعال کا مجموعہ ہے۔
دو دائروں میں متغیر کا اعلان کرنے کی ایک مثال یہ ہے:
- مقامی دائرہ کار کے ساتھ متغیر - یہ فنکشن کے اندر استعمال کے لیے فنکشن آبجیکٹ کے طور پر کام کرتا ہے۔
- عالمی دائرہ کار کے ساتھ متغیر - اس ونڈو آبجیکٹ کو فنکشنز کے اندر اور باہر دونوں استعمال کیا جا سکتا ہے۔
24. noImplicitAny بالکل کس کے لیے استعمال ہوتا ہے؟
TypeScript کمپائلر کی طرف سے آپ کے پروجیکٹ کی کسی بھی قسم کے ضمنی علاج کو TypeScript پروجیکٹس کے لیے tsconfig.json کنفیگریشن فائل میں noImplicitAny پراپرٹی کے ذریعے تبدیل کیا جاتا ہے۔
noImplicitAny پرچم کو صحیح یا غلط پر سیٹ کیا جا سکتا ہے اور ابتدا کے بعد ہمیشہ تبدیل ہوتا ہے۔ یہ دیکھتے ہوئے کہ ہر پروجیکٹ منفرد ہے، اس نمبر پر کوئی صحیح یا غلط جواب نہیں ہے۔
جھنڈے کی آن اور آف ریاستوں کے درمیان فرق کو سمجھنے سے آپ کو یہ منتخب کرنے میں مدد مل سکتی ہے کہ جھنڈے کے لیے کون سی ترتیب استعمال کرنی ہے۔
مرتب کرنے والا متغیر کی قسم کا تعین اس بنیاد پر نہیں کرتا ہے کہ اگر noImplicitAny پرچم غلط (پہلے سے طے شدہ) پر سیٹ کیا گیا ہے تو اسے کس طرح استعمال کیا جاتا ہے۔ اس کے بجائے کمپائلر کے ذریعہ کسی بھی قسم کو بطور ڈیفالٹ سیٹ کیا جاتا ہے۔
تاہم، اگر noImplicitAny آپشن کو درست پر سیٹ کیا جاتا ہے، تو مرتب کرنے والا قسم کا اندازہ لگانے کی کوشش کرے گا اور اگر ایسا کرنے سے قاصر ہے تو مرتب وقت کی غلطی کو بڑھا دے گا۔
25. یونین اور انٹرسیکشن کی اقسام ایک دوسرے سے کیسے مختلف ہیں؟
شروع سے نئی قسمیں پیدا کرنے کے بجائے، یونینز اور انٹرسیکشن کی قسمیں آپ کو موجودہ اقسام کو کمپوز کرنے اور ملانے کی اجازت دیتی ہیں۔ یونین اور انٹرسیکشن دونوں میں مخصوص خصوصیات ہیں جو انہیں استعمال کے مخصوص معاملات کے لیے بہترین بناتی ہیں۔
ایک قسم جو کئی اقسام میں سے ایک ہو سکتی ہے اسے یونین کی قسم کہا جاتا ہے۔ نئی قسم میں استعمال ہونے والی اقسام کی فہرست کو | کا استعمال کرتے ہوئے تقسیم کیا گیا ہے۔ (عمودی بار) یونین کی اقسام میں علامت۔
آئیے ایک مثال دیکھتے ہیں:
دوسری طرف، چوراہے کی تعریف ایک ایسی قسم کے طور پر کی گئی ہے جو بہت سی اقسام کو ایک میں ضم کرتی ہے، ہر قسم کی تمام خصوصیات کو یکجا کرکے ایک نئی قسم کی تشکیل کرتی ہے۔ ضم ہونے والی اقسام کی فہرست کو & علامت کا استعمال کرتے ہوئے چوراہوں میں تقسیم کیا گیا ہے۔
آئیے ایک مثال کا جائزہ لیتے ہیں:
26. آپ TypeScript Declare Keyword کی وضاحت کیسے کرتے ہیں؟
JavaScript لائبریریوں یا فریم ورک میں کوئی TypeScript ڈیکلریشن فائلیں نہیں ہیں۔ تاہم، آپ کو تالیف کی غلطیوں کا سامنا کیے بغیر TypeScript فائل میں استعمال کرنے کے لیے ڈیکلیئر کلیدی لفظ کا استعمال کرنا چاہیے۔
جب آپ کسی متغیر کی وضاحت کرنا چاہتے ہیں جو پہلے سے کہیں اور موجود ہو، تو آپ ڈیکلیئر کلیدی لفظ کو محیطی اعلانات اور طریقوں میں استعمال کرتے ہیں۔
27. TypeScript میں، generics کیا ہیں؟
TypeScript Generics نامی ایک ٹول دوبارہ قابل استعمال حصوں کی تیاری کا طریقہ پیش کرتا ہے۔ اعداد و شمار کی صرف ایک شکل کے ساتھ کام کرنے کے بجائے، یہ ایسے اجزاء تیار کر سکتا ہے جو ڈیٹا کی اقسام کے ساتھ کام کر سکتے ہیں۔
مزید برآں، یہ کارکردگی یا پیداواری صلاحیت کی قربانی کے بغیر قسم کی حفاظت پیش کرتا ہے۔ ہم جنرک کی بدولت عام کلاسز، عام افعال، عام طریقے، اور عام انٹرفیس بنا سکتے ہیں۔
جنرکس انتہائی ٹائپ شدہ مجموعے ہیں کیونکہ ایک قسم کا پیرامیٹر اوپن () اور بند (>) بریکٹ کے درمیان لکھا جاتا ہے۔ یہ ایک منفرد قسم کے قسم کے متغیر کا استعمال کرتا ہے جسے T کہتے ہیں جس کا مطلب ہے اقسام۔
28. TypeScript میں JSX کا کیا مطلب ہے؟
JSX ایک جائز JavaScript ہے جسے ایمبیڈ ایبل XML نما نحو سے تبدیل کیا جا سکتا ہے۔ React فریم ورک کے ساتھ ساتھ، JSX نے مقبولیت حاصل کی۔
براہ راست تالیف، قسم کی تصدیق، اور JSX کی JavaScript میں سرایت کرنے کو TypeScript کے ذریعے تعاون حاصل ہے۔ اگر آپ اسے استعمال کرنا چاہتے ہیں تو آپ کو اپنی فائل کو a.tsx ایکسٹینشن دینا ہوگی اور JSX آپشن کو چالو کرنا ہوگا۔
29. TypeScript Ambients کیا ہیں اور مجھے ان کا استعمال کب کرنا چاہیے؟
کمپائلر کو حقیقی سورس کوڈ کے بارے میں مطلع کیا جاتا ہے جو ایمبیئنٹ ڈیکلریشنز کے ذریعے کہیں اور واقع ہے۔
یہ بغیر کسی پیشگی اطلاع کے ٹوٹ جائے گا اگر ہم ان سورس کوڈز کو رن ٹائم پر استعمال کرنے کی کوشش کریں گے لیکن وہ موجود نہیں ہیں۔ دستاویز جیسی فائلیں محیطی اعلانات کی فائلیں ہیں۔
اگر ذریعہ تبدیل ہوتا ہے تو، دستاویزات کو اپ ڈیٹ کرنا ضروری ہے، اور اگر محیطی اعلان فائل کو تبدیل نہیں کیا جاتا ہے تو کمپائلر کے مسائل پیدا ہوں گے۔
مزید برآں، یہ ہمیں معروف JavaScript لائبریریوں کا فائدہ اٹھانے کے قابل بناتا ہے جو پہلے سے وسیع پیمانے پر استعمال ہوتی ہیں، جیسے jQuery، AngularJS، NodeJS، وغیرہ۔
30. ٹائپ اسکرپٹ میں تجریدی کلاس سے آپ کا کیا مطلب ہے؟
خلاصہ کلاسیں براہ راست آبجیکٹ انسٹی ٹیشن کی اجازت کے بغیر کسی شے کے معاہدے کی وضاحت کرتی ہیں۔ تاہم، ایک تجریدی کلاس اپنے ممبر کے نفاذ کی معلومات بھی پیش کر سکتی ہے۔
تجریدی کلاس میں ایک یا زیادہ تجریدی ممبران مل سکتے ہیں۔ سپر کلاس کے تجریدی ممبران کے پاس پھر کسی بھی کلاس کے ذریعہ فراہم کردہ ایک نفاذ ہونا چاہئے جو خلاصہ کلاس کو بڑھاتا ہے۔
آئیے ایک خلاصہ کلاس کی TypeScript مثال پر ایک نظر ڈالتے ہیں اور یہ کہ ایک مختلف کلاس اسے کیسے بڑھا سکتی ہے۔ اگرچہ نیچے دی گئی مثال میں کار اور بائیک دونوں کلاسز وہیکل کلاس کو بڑھاتے ہیں، لیکن وہ ہر ایک ڈرائیو() فنکشن کو منفرد انداز میں نافذ کرتے ہیں۔
31. ٹائپ اسکرپٹ میپ فائل دراصل کیا ہے؟
ایک سورس میپ فائل جسے TypeScript Map فائل کہا جاتا ہے اس میں ہماری اصل فائلوں کا ڈیٹا ہوتا ہے۔ سورس میپ فائلز، یا .map فائلیں، ٹولز کو جاوا اسکرپٹ کوڈ جو آؤٹ پٹ ہے اور ٹائپ اسکرپٹ سورس فائلوں کے درمیان نقشہ بنانے کی اجازت دیتی ہیں جنہوں نے اسے بنایا ہے۔
مزید برآں، ان فائلوں کو ڈیبگرز کے ذریعے استعمال کیا جا سکتا ہے، جس سے ہمیں JavaScript فائل کی بجائے TypeScript فائل کو ڈیبگ کرنے کی اجازت ملتی ہے۔
32. TypeScript میں، قسم کے دعوے کیا ہیں؟
جب کہ قسم کا دعویٰ دوسری زبانوں جیسے C# اور Java میں ٹائپ کاسٹنگ کی طرح کام کرتا ہے، یہ قسم کی توثیق یا ڈیٹا کو دوبارہ ترتیب نہیں دیتا ہے۔
اگرچہ قسم کے دعوے کا رن ٹائم پر کوئی اثر نہیں ہوتا ہے، لیکن قسم کاسٹنگ یہ معاونت پیش کرتی ہے۔ دوسری طرف، قسم کے دعوے صرف مرتب کرنے والے کے ذریعے استعمال کیے جاتے ہیں اور اس بارے میں رہنمائی فراہم کرتے ہیں کہ ہم اپنے کوڈ کی جانچ کیسے کرانا چاہتے ہیں۔
نتیجہ
آخر میں، ہم امید کرتے ہیں کہ یہ TypeScript انٹرویو کے سوالات آپ کے لیے مددگار ثابت ہوں گے، چاہے آپ ایک ڈویلپر ہو جو نوکری کے انٹرویو کے لیے تیار ہو رہا ہو یا بہترین درخواست دہندگان کو تلاش کرنے کی کوشش کرنے والا ملازم ہوں۔
یاد رکھیں کہ بھرتی کے عمل میں صرف تکنیکی مہارت سے زیادہ شامل ہوتا ہے۔ اس بات کو یقینی بنانے کے لیے کہ آپ نوکری پر اتریں (یا اس کے لیے موزوں درخواست دہندہ کا پتہ لگائیں)، ماضی کے تجربات اور نرم مہارتیں بھی اتنی ہی اہم ہیں۔
TypeScript انٹرویو کے بہت سارے سوالات کھلے ہوئے ہیں اور ان کا ایک بھی صحیح جواب نہیں ہے، لہذا اسے ذہن میں رکھیں۔
انٹرویو لینے والے آپ کے جوابات کے پیچھے دلیل میں دلچسپی رکھتے ہیں۔
فالو اپ پوچھ گچھ کے لیے ہمیشہ تیار رہیں یہ بتاتے ہوئے کہ آپ اپنے جواب پر کیسے پہنچے۔ اپنے سوچنے کے عمل کی وضاحت کریں۔
جواب دیجئے