TypeScript Academy · पाठ

any प्रकार और इससे बचने का कारण

any को समझें और जानें कि यह TypeScript के उद्देश्य को कब निष्प्रभावी कर देता है।

पाठ 2, कुल 4 में से13 चरण

any प्रकार और इससे बचने का कारण, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

`any` प्रकार TypeScript का आपातकालीन उपाय है — यह किसी चर के लिए प्रकार-जाँच पूरी तरह बंद कर देता है। इस पाठ में आप समझेंगे कि यह कब दिखाई देता है और इसके उपयोग को न्यूनतम क्यों रखना चाहिए।

any क्या करता है

`any` प्रकार वाला चर कोई भी मान रख सकता है और किसी भी संक्रिया का समर्थन करता है। TypeScript उसकी जाँच पूरी तरह बंद कर देता है।
let x: any = 5;
x = 'hello';       // OK
x = true;          // OK
x.nonExistent();   // No error — but crashes at runtime!

any कैसे फैलता है

किसी `any` चर को प्रकारयुक्त चर में असाइन करने से वह प्रकारयुक्त चर भी प्रभावित हो जाता है। `any` आपके पूरे कोड आधार में चुपचाप फैलता रहता है।
let data: any = fetchData();
let name: string = data.name; // name is now effectively any

TypeScript any का अनुमान कब लगाता है

यदि आप किसी चर को प्रारंभिक मान और प्रकार-टिप्पणी के बिना घोषित करते हैं, तो TypeScript `any` का अनुमान लगाता है। इसे कम्पाइल त्रुटि बनाने के लिए `noImplicitAny` सक्षम करें।
let value; // inferred as any — dangerous!
value = 42;
value = 'hello';

// Fix:
let value2: number;

noImplicitAny फ़्लैग

`noImplicitAny` कम्पाइलर विकल्प (`strict` द्वारा सक्षम) आपको डिफ़ॉल्ट रूप से `any` पर निर्भर होने के बजाय प्रकारों की प्रकार-टिप्पणी जोड़ने के लिए बाध्य करता है।
// tsconfig.json
{ "compilerOptions": { "noImplicitAny": true } }

// Now this is an error:
function process(data) { } // Error: Parameter has implicit any type

any के उचित उपयोग

कभी-कभी `any` से बचना संभव नहीं होता: JavaScript को स्थानांतरित करते समय, बिना प्रकार वाली तृतीय-पक्ष लाइब्रेरी संभालते समय या वास्तव में गतिशील डेटा के साथ काम करते समय। इसका उपयोग कम और सीमित स्थान पर करें।
// Acceptable: narrow scope, clearly documented
function parseJson(raw: string): any {
  return JSON.parse(raw); // validate with Zod afterwards
}

विकल्प के रूप में प्रकार-अभिकथन

`any` के बजाय प्रकार-अभिकथन (`as Type`) का उपयोग करें, जब आपको कम्पाइलर से अधिक जानकारी किसी प्रकार के बारे में हो। यह अधिक सुरक्षित है, क्योंकि आप एक विशिष्ट प्रकार की स्पष्ट जिम्मेदारी लेते हैं।
const raw = JSON.parse(text) as { name: string; age: number };
console.log(raw.name); // typed correctly

any बनाम ऑब्जेक्ट

`object` प्रकार किसी भी गैर-मूल मान को स्वीकार करता है, लेकिन `any` के विपरीत मनमानी प्रॉपर्टी तक पहुँच की अनुमति नहीं देता। यह थोड़ी अतिरिक्त सुरक्षा प्रदान करता है।
let o: object = { x: 1 };
// o.x; // Error — object doesn't allow property access

let a: any = { x: 1 };
a.x; // OK — but no safety

any स्वतः-पूर्णता बंद कर देता है

सुरक्षा के अलावा, `any` का उपयोग आईडीई की स्वतः-पूर्णता और नेविगेशन को भी शांत कर देता है। TypeScript द्वारा दिए जाने वाले सभी टूलिंग लाभ आप खो देते हैं।

any को unknown से बदलना

जिस बाहरी डेटा पर आपका नियंत्रण नहीं है, उसके लिए `unknown` को प्राथमिकता दें। यह `any` के विपरीत, उपयोग करने से पहले प्रकार को सीमित करने के लिए बाध्य करता है; `any` आपको कुछ भी करने देता है।
let input: unknown = getInput();
// input.toUpperCase(); // Error — must narrow first
if (typeof input === 'string') {
  console.log(input.toUpperCase()); // OK
}

any का ऋण

`any` को एक ऋण की तरह समझें। हर उपयोग आपके कोड आधार को कम सुरक्षित बनाता है। उत्पादन कोड में `any` प्रकारों की संख्या शून्य रखने का लक्ष्य रखें। ESLint के @typescript-eslint/no-explicit-any नियम का उपयोग करें।

त्वरित जाँच

कौन-सा कम्पाइलर विकल्प TypeScript को तब त्रुटि बताने के लिए बाध्य करता है, जब किसी चर का प्रकार निहित `any` हो?

पुनरावलोकन

`any` प्रकार TypeScript की प्रकार-जाँच बंद कर देता है और पूरे कोड में फैल जाता है। noImplicitAny सक्षम करें, बाहरी डेटा के लिए `any` को `unknown` से बदलें और विशिष्ट मामलों में प्रकार-अभिकथनों का उपयोग करें।
शुरुआत निःशुल्क

एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
101
पाठ
352

अक्सर पूछे जाने वाले प्रश्न

क्या “any प्रकार और इससे बचने का कारण” पाठ निःशुल्क है?

हाँ—“any प्रकार और इससे बचने का कारण” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“any प्रकार और इससे बचने का कारण” में मैं क्या सीखूँगा?

any को समझें और जानें कि यह TypeScript के उद्देश्य को कब निष्प्रभावी कर देता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“any प्रकार और इससे बचने का कारण” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. प्रिमिटिव प्रकार: string, number, boolean
  2. any प्रकार और इससे बचने का कारण
  3. unknown बनाम any: अधिक सुरक्षित विकल्प
  4. null, undefined और सख्त Null जाँच
← TypeScript Academy पर वापस जाएँ