मुख्य सामग्री पर जाएं
मॉड्यूल 7 · पाठ 1 का 2पाठ्यक्रम में 13/14~12 min
मॉड्यूल पाठ (1/2)

Tsconfig.json के साथ कॉन्फ़िगरेशन

tsconfig.json फ़ाइल टाइपस्क्रिप्ट प्रोजेक्ट की रूट निर्देशिका और प्रोजेक्ट बनाने के लिए आवश्यक कंपाइलर विकल्प निर्दिष्ट करती है।

जब भी आप किसी प्रोजेक्ट निर्देशिका में 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लोड हो रहा है...

tsconfig.json में strictNullChecks: true विकल्प के तहत, हम आदिम प्रकारों को शून्य या अपरिभाषित निर्दिष्ट नहीं कर सकते हैं। parseAge नाम का एक फ़ंक्शन घोषित करें जो स्ट्रिंग | प्रकार के इनपुट को स्वीकार करता है शून्य और एक संख्या लौटाता है यदि इनपुट शून्य नहीं है और एक वैध पूर्णांक है, अन्यथा यह 0 लौटाता है। सख्त संकलन पारित करने के लिए स्पष्ट रूप से शून्य मामले को संभालें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

जांचें कि क्या फ़ंक्शन की शुरुआत में इनपुट शून्य है और स्ट्रिंग को संसाधित करने से तुरंत पहले 0 लौटाएं।

3 प्रयासों के बाद समाधान उपलब्ध है

अभ्यास 2: बिना किसी निहितार्थ के सख्त टाइपिंग

व्यायाम#ts.m7.l1.e2
प्रयास: 0लोड हो रहा है...

NoImplicitAny: true के तहत, कोई भी पैरामीटर जिसके प्रकार का अनुमान नहीं लगाया जा सकता है उसे स्पष्ट रूप से टाइप किया जाना चाहिए। प्रोसेसआइटम्स नामक एक फ़ंक्शन बनाएं जो एक सरणी आइटम (संख्याओं की सरणी) और एक कॉलबैक फ़ंक्शन स्वीकार करता है जो एक संख्या को तर्क के रूप में लेता है और कुछ भी नहीं लौटाता है। सुनिश्चित करें कि किसी का उपयोग न करें और सब कुछ स्पष्ट रूप से टाइप करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

फ़ंक्शन को हस्ताक्षर फ़ंक्शन प्रोसेसआइटम्स(आइटम्स: नंबर[], कॉलबैक: (आइटम: नंबर) => शून्य): शून्य के साथ घोषित करें।

3 प्रयासों के बाद समाधान उपलब्ध है