TypeScript Academy · पाठ

unknown बनाम any: अधिक सुरक्षित विकल्प

जानें कि unknown उपयोग से पहले प्रकार की जाँच करने के लिए आपको क्यों बाध्य करता है।

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

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

स्वागत है

TypeScript 3.0 ने `any` के प्रकार-सुरक्षित विकल्प के रूप में `unknown` प्रकार प्रस्तुत किया। इस पाठ में आप जानेंगे कि `unknown` अधिक सुरक्षित क्यों है और इसका उपयोग कब करना चाहिए।

any की समस्या

`any` के साथ TypeScript सभी जाँच बंद कर देता है। आप बिना किसी प्रतिबंध और सुरक्षा के विधियाँ बुला सकते हैं, प्रॉपर्टी तक पहुँच सकते हैं और प्रकारयुक्त चरों में मान असाइन कर सकते हैं।
let val: any = getData();
val.someMethod(); // TypeScript: OK. Runtime: possible crash

unknown का परिचय

`unknown` प्रकार-सुरक्षित सर्वोच्च प्रकार है। `any` की तरह इसमें कोई भी मान रखा जा सकता है। `any` के विपरीत, पहले प्रकार सीमित किए बिना आप इसका उपयोग नहीं कर सकते।
let val: unknown = getData();
// val.someMethod(); // Error: Object is of type 'unknown'

उपयोग से पहले unknown का प्रकार सीमित करना

`unknown` मान का उपयोग करने के लिए आपको पहले प्रकार-जाँच द्वारा उसका प्रकार सीमित करना होगा। इसके बाद TypeScript सीमित किए गए प्रकार पर संक्रियाओं की अनुमति देता है।
let input: unknown = getInput();
if (typeof input === 'string') {
  console.log(input.toUpperCase()); // OK — narrowed to string
}

unknown को विशिष्ट प्रकारों में असाइन नहीं किया जा सकता

आप जाँच या अभिकथन के बिना `unknown` को किसी विशिष्ट प्रकार में असाइन नहीं कर सकते। इससे आप मान का उपयोग करने से पहले उसका सत्यापन करने के लिए बाध्य होते हैं।
let x: unknown = 'hello';
// let s: string = x; // Error
let s: string = x as string; // OK with assertion

कैच ब्लॉक में unknown का उपयोग

TypeScript 4.0 और उसके बाद के संस्करणों में पकड़ी गई त्रुटियों का डिफ़ॉल्ट प्रकार `unknown` होता है। यह पुराने `any` डिफ़ॉल्ट से अधिक सुरक्षित है, क्योंकि इससे आपको त्रुटि के प्रकार की जाँच करनी पड़ती है।
try {
  doSomething();
} catch (err: unknown) {
  if (err instanceof Error) {
    console.log(err.message); // safe
  }
}

बाहरी डेटा के लिए unknown

JSON को पार्स करते समय या किसी API से डेटा प्राप्त करते समय, पहले उसका प्रकार `unknown` रखें और उपयोग से पहले उसका सत्यापन करें।
const raw: unknown = JSON.parse(text);
if (
  typeof raw === 'object' &&
  raw !== null &&
  'name' in raw
) {
  console.log((raw as any).name);
}

unknown के साथ प्रकार-रक्षक

उपयोगकर्ता द्वारा परिभाषित प्रकार-रक्षक `unknown` के साथ पूरी तरह काम करते हैं और उपयोग से पहले जटिल संरचनाओं का सत्यापन करने देते हैं।
function isUser(val: unknown): val is { name: string } {
  return typeof val === 'object' && val !== null && 'name' in val;
}

unknown बनाम never

`unknown` सर्वोच्च प्रकार है — हर प्रकार इसमें असाइन किया जा सकता है। `never` निम्नतम प्रकार है — इसमें कुछ भी असाइन नहीं किया जा सकता। ये दोनों एक-दूसरे के विपरीत हैं।
// unknown: anything can be assigned to it
let a: unknown = 42; // OK

// never: nothing can be assigned to it
function fail(): never { throw new Error(); }

any और unknown में से चुनाव

जब आपको अनिर्धारित प्रकार का डेटा प्राप्त हो, जैसे JSON, उपयोगकर्ता इनपुट या बाहरी API डेटा, तब `unknown` का उपयोग करें। `any` का उपयोग केवल स्थानांतरण के दौरान या बिना प्रकार वाली लाइब्रेरी के साथ अंतिम उपाय के रूप में करें।

रनटाइम सत्यापन लाइब्रेरी

ज़ॉड, वैलिबॉट और आईओ-टीएस जैसी लाइब्रेरी `unknown` के साथ पूरी तरह काम करती हैं। वे पार्स और सत्यापन करके `unknown` इनपुट से सही प्रकार वाला मान लौटाती हैं।
import { z } from 'zod';
const UserSchema = z.object({ name: z.string(), age: z.number() });
const user = UserSchema.parse(unknownData); // throws if invalid

त्वरित जाँच

TypeScript में `unknown` मान का उपयोग करने से पहले आपको क्या करना आवश्यक है?

पुनरावलोकन

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

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

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

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

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

क्या “unknown बनाम any: अधिक सुरक्षित विकल्प” पाठ निःशुल्क है?

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

“unknown बनाम any: अधिक सुरक्षित विकल्प” में मैं क्या सीखूँगा?

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

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

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

“unknown बनाम any: अधिक सुरक्षित विकल्प” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

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