ماڈیول اسباق (1/2)
قدیم اقسام اور تشریحات
TypeScript JavaScript کا ٹائپ شدہ سپر سیٹ ہے، یعنی یہ موجودہ JavaScript کے اوپر جامد قسم کا نحو شامل کرتا ہے۔ رن ٹائم پر، تمام TypeScript کوڈ خالص JavaScript پر مرتب کیا جاتا ہے اور قسمیں تعمیر کے عمل کے دوران مکمل طور پر غائب ہو جاتی ہیں۔
TypeScript کی بدولت، آپ براؤزر میں کوڈ کے چلنے سے پہلے ہی غلطیوں کو پکڑ سکتے ہیں، جس سے آپ کی ترقی کے عمل کو مزید مضبوط، محفوظ اور قابل توسیع بنایا جا سکتا ہے۔
قدیم اقسام
TypeScript معیاری جاوا اسکرپٹ کی ابتدائی اقسام کی حمایت کرتا ہے:
string: حروف کی ترتیب کی نمائندگی کرتا ہے (جیسے'Alice',"Hello")۔number: عددی اقدار کی نمائندگی کرتا ہے، عددی اور اعشاریہ دونوں (جیسے42،3.14)۔boolean: سچائی اقدار کی نمائندگی کرتا ہے (trueیاfalse)۔nullاورundefined: کسی قدر کی جان بوجھ کر یا غیر ارادی غیر موجودگی کی نمائندگی کریں۔
const username: string = 'Alice';
const score: number = 100;
const isActive: boolean = true;متغیر تشریحات اور تخمینہ
TypeScript میں، ہم بڑی آنت (:) کا استعمال کرکے ٹائپ کے بعد ٹائپ تشریح شامل کر سکتے ہیں۔
اگر آپ کسی مختلف قسم کی قدر تفویض کرنے کی کوشش کرتے ہیں (مثال کے طور پر، age کو ایک سٹرنگ تفویض کرنا number کے طور پر بیان کیا گیا ہے)، TypeScript مرتب کرنے والا کوڈ کے چلنے سے پہلے ہی فوری طور پر ایک خرابی پیدا کر دے گا۔
any قسم کا خطرہ
any قسم ایک خاص فرار ہیچ ہے جو TypeScript کو اس متغیر کے لیے ٹائپ چیکنگ کو مکمل طور پر بند کرنے کے لیے کہتی ہے۔
let data: any = 42;
data = 'Hello'; // No error!
data.nonExistentMethod(); // No error at compile time, but it crashes at runtime!any کا استعمال TypeScript استعمال کرنے کے تمام حفاظتی فوائد کی نفی کرتا ہے۔ یہ ایک برا عمل سمجھا جاتا ہے اور تقریبا ہمیشہ پروڈکشن کوڈ میں اس سے بچنا چاہیے۔
فنکشن تشریحات اور void قسم
ہم فنکشن کے پیرامیٹر اور واپسی کی قدر دونوں کی تشریح کر سکتے ہیں:
function calculateTax(price: number, taxRate: number): number {
return price * taxRate;
}اگر کوئی فنکشن کوئی قدر واپس نہیں کرتا ہے (مثال کے طور پر، یہ صرف ایک console.log کرتا ہے)، تو اس کی واپسی کی قسم ہے void:
function logMessage(message: string): void {
console.log(message);
}خود ہی آزمائیں۔
ورزش 1: ٹائپ شدہ متغیرات
تین واضح طور پر ٹائپ کیے گئے متغیرات کا اعلان کریں: قدر 'ایلس' کے ساتھ سٹرنگ کے طور پر صارف کا نام، قدر 100 کے ساتھ نمبر کے طور پر اسکور، اور ویلیو سچ کے ساتھ بولین کے طور پر isActive۔ کسی بھی قسم کا استعمال نہ کریں۔
اشارہ دکھائیں۔
ہر متغیر کے نام کے بعد نحو: string، : number، اور : boolean استعمال کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش 2: سلام کا فنکشن
greet کے نام سے ایک فنکشن بنائیں جو ٹائپ سٹرنگ کے پیرامیٹر نام کو قبول کرے اور نام کے بعد 'Hello' فارمیٹ میں ایک سٹرنگ واپس کرے۔ واضح طور پر پیرامیٹر کی قسم اور واپسی کی قسم دونوں کی وضاحت کریں۔
اشارہ دکھائیں۔
فنکشن کو فنکشن greet (name: string): string { ... } کے طور پر ڈیکلیئر کریں اور میسج واپس کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 3: درجہ حرارت کنورٹر
سیلسیس ٹو فارن ہائیٹ نامی فنکشن کا اعلان کریں جو ٹائپ نمبر کے پیرامیٹر سیلسیس کو قبول کرتا ہے اور ڈگری فارن ہائیٹ (نمبر) میں مساوی درجہ حرارت لوٹاتا ہے۔ فارمولہ سیلسیس * 9/5 + 32 ہے۔ پیرامیٹر کی قسم اور واپسی کی قسم دونوں کو واضح طور پر بیان کریں۔
اشارہ دکھائیں۔
سیلسیس کو 9 سے ضرب دیں، 5 سے تقسیم کریں، 32 کا اضافہ کریں اور فنکشن پر نمبر واپسی کی قسم کے ساتھ نتیجہ واپس کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
مشق 4: ڈسکاؤنٹ کیلکولیشن
calculateDiscount کے نام سے ایک فنکشن بنائیں جو ٹائپ نمبر کی پیرامیٹر قیمت اور قسم نمبر کے پیرامیٹر ڈسکاؤنٹ فی صد کو قبول کرتا ہے، اور ایک نمبر کے طور پر حتمی رعایتی قیمت واپس کرتا ہے۔ واضح طور پر پیرامیٹر کی اقسام اور واپسی کی قسم دونوں کی وضاحت کریں۔
اشارہ دکھائیں۔
رعایت کے فیصد کو 1 سے 100 سے تقسیم کریں، پھر قیمت سے ضرب کریں۔ اس بات کو یقینی بنائیں کہ پیرامیٹرز کی تشریح کریں اور نمبر کے طور پر قدر واپس کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔