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

tsconfig.json کے ساتھ کنفیگریشن

tsconfig.json فائل TypeScript پروجیکٹ کی روٹ ڈائرکٹری اور پروجیکٹ کو بنانے کے لیے درکار کمپائلر آپشنز کی وضاحت کرتی ہے۔

جب بھی آپ کسی پروجیکٹ ڈائرکٹری میں tsc چلاتے ہیں، مرتب کرنے والا اس فائل کو اس کے تالیف کے رویے کی رہنمائی کے لیے تلاش کرتا ہے۔


ایک tsconfig.json فائل کا ڈھانچہ

ایک عام کنفیگریشن فائل اس طرح دکھتی ہے:

Code
{
  "compilerOptions": {
    "target": "es2022",
    "module": "commonjs",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "outDir": "./dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "**/*.spec.ts"]
}

اہم خصوصیات ہیں:

  • compilerOptions: مرتب کرنے والے کی ترتیبات۔
  • include: مرتب کرنے کے لیے فائلوں یا فولڈرز کی وضاحت کرتا ہے۔
  • exclude: تالیف کے دوران نظر انداز کرنے والی فائلوں یا فولڈرز کی وضاحت کرتا ہے۔

کلیدی کمپائلر کے اختیارات

جاننے کے لیے یہاں کچھ اہم ترین ترتیبات ہیں:

  1. target: کمپائلر کے ذریعہ جاوا اسکرپٹ آؤٹ پٹ کے ورژن کی وضاحت کرتا ہے (مثال کے طور پر، es5، ​​es6/es2015، es2020، esnext)۔
  2. module: مرتب کردہ کوڈ میں استعمال ہونے والے ماڈیول سسٹم کی وضاحت کرتا ہے (جیسے، commonjs, esnext, node16)۔
  3. strict: سخت قسم کی جانچ پڑتال کے رویوں کا ایک وسیع مجموعہ فعال کرتا ہے۔ زیادہ سے زیادہ قسم کی حفاظت کے لیے اسے true پر سیٹ کرنے کی انتہائی سفارش کی جاتی ہے۔ یہ اختیارات کو قابل بناتا ہے جیسے:
    • noImplicitAny: جب کسی قسم کی تشریح فراہم نہیں کی جاتی ہے تو ایک مضمر any قسم کے ساتھ اظہار اور اعلانات پر ایک خامی پیدا کرتا ہے۔
    • strictNullChecks: null یا undefined کو ان قسموں کو تفویض کرنے سے روکتا ہے جو انہیں واضح طور پر اپنی یونین میں شامل نہیں کرتی ہیں۔

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

ورزش 1: سخت نال چیکس کو ہینڈل کرنا

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

sconfig.json میں strictNullChecks: true آپشن کے تحت، ہم قدیم اقسام کو null یا undefined تفویض نہیں کر سکتے۔ parseAge نامی ایک فنکشن کا اعلان کریں جو قسم کے سٹرنگ کے ان پٹ کو قبول کرتا ہے۔ null اور نمبر لوٹاتا ہے اگر ان پٹ null نہیں ہے اور ایک درست عدد ہے، ورنہ یہ 0 لوٹاتا ہے۔ سخت تالیف پاس کرنے کے لیے null کیس کو واضح طور پر ہینڈل کریں۔

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

چیک کریں کہ آیا فنکشن کے آغاز میں ان پٹ null ہے اور سٹرنگ پر کارروائی کرنے سے پہلے 0 واپس کر دیں۔

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

مشق 2: بغیر کسی مضمرات کے سخت ٹائپنگ

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

noImplicitAny: true کے تحت، کوئی بھی پیرامیٹر جس کی قسم کا اندازہ نہیں لگایا جا سکتا اسے واضح طور پر ٹائپ کیا جانا چاہیے۔ پروسیس آئٹمز کے نام سے ایک فنکشن بنائیں جو ایک سرنی آئٹمز (نمبروں کی صف) کو قبول کرتا ہے اور ایک کال بیک فنکشن جو ایک نمبر کو بطور دلیل لیتا ہے اور کچھ بھی نہیں دیتا ہے۔ یقینی بنائیں کہ کوئی بھی استعمال نہ کریں اور ہر چیز کو واضح طور پر ٹائپ کریں۔

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

دستخطی فنکشن کے ساتھ فنکشن کا اعلان کریں processItems(items: number[]، callback: (item: number) => void): void۔

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