unknown का प्रकार-सुरक्षित प्रबंधन
unknown मानों का सुरक्षित उपयोग करने से पहले उन्हें संकीर्ण करें।
unknown का प्रकार-सुरक्षित प्रबंधन, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
unknown के साथ सुरक्षित रूप से काम करना
बाहरी डेटा का प्रकार unknown रखना केवल आधा काम है। बाकी आधा है, उपयोग करने से पहले उसे किसी ठोस प्रकार में संकीर्ण करना। इस पाठ में मुख्य प्रकार-संकीर्णन तकनीकों को शामिल किया गया है।
function describe(v: unknown): string {
if (typeof v === 'string') return 'string: ' + v;
if (typeof v === 'number') return 'number: ' + v;
return 'other';
}
console.log(describe('hi'), describe(7), describe(true));typeof के साथ प्रकार-संकीर्णन
typeof गार्ड सबसे सरल उपकरण है। यह unknown को आदिम प्रकारों में संकीर्ण करता है: string, number, boolean, function, object और अन्य।
function double(v: unknown): number {
if (typeof v === 'number') {
return v * 2; // v is number here
}
return 0;
}
console.log(double(21), double('no'));instanceof के साथ प्रकार-संकीर्णन
वर्ग के इंस्टेंस के लिए instanceof का उपयोग करें। यह unknown को किसी विशिष्ट वर्ग में संकीर्ण करता है, जिससे उसकी विधियों और प्रॉपर्टीज़ का सुरक्षित रूप से उपयोग किया जा सकता है।
function handle(v: unknown): string {
if (v instanceof Date) {
return v.toISOString(); // v is Date
}
return 'not a date';
}
console.log(handle(new Date(0)));in ऑपरेटर के साथ प्रकार-संकीर्णन
in ऑपरेटर जाँचता है कि किसी ऑब्जेक्ट पर कोई प्रॉपर्टी मौजूद है या नहीं और ऑब्जेक्ट-प्रकार वाले मानों को संकीर्ण करता है। पहले सुनिश्चित करें कि मान नॉन-नल ऑब्जेक्ट है, फिर उसकी कुंजियों को जाँचें।
function getName(v: unknown): string {
if (typeof v === 'object' && v !== null && 'name' in v) {
return String((v as { name: unknown }).name);
}
return 'anonymous';
}
console.log(getName({ name: 'Ada' }), getName(5));कस्टम प्रकार गार्ड
कस्टम प्रकार गार्ड ऐसा फ़ंक्शन है जिसका वापसी प्रकार value is T होता है। जब यह true लौटाता है, तो TypeScript कॉल वाली जगह पर आर्ग्युमेंट को T में संकीर्ण कर देता है।
function isString(v: unknown): v is string {
return typeof v === 'string';
}
function shout(v: unknown): string {
return isString(v) ? v.toUpperCase() : '?';
}
console.log(shout('hey'), shout(9));ऑब्जेक्ट संरचनाओं के लिए गार्ड
ऑब्जेक्ट संरचनाओं को सत्यापित करने में कस्टम गार्ड विशेष रूप से उपयोगी होते हैं। ऐसा एक फ़ंक्शन लिखें जो सभी आवश्यक फ़ील्ड जाँचे, फिर आपका बाकी कोड संकीर्ण किए गए प्रकार पर भरोसा कर सकता है।
type User = { id: number; name: string };
function isUser(v: unknown): v is User {
return typeof v === 'object' && v !== null &&
'id' in v && 'name' in v;
}
console.log(isUser({ id: 1, name: 'Sam' }), isUser({}));JSON.parse अज्ञात-जैसा डेटा लौटाता है
JSON.parse का प्रकार any लौटाने के लिए निर्धारित है, जिससे सुरक्षा चुपचाप दरकिनार हो जाती है। सर्वोत्तम तरीका है: इसे unknown के रूप में लें और संरचना पर भरोसा करने से पहले उसे सत्यापित करें।
function parseConfig(text: string): unknown {
return JSON.parse(text);
}
const raw = parseConfig('{"port":8080}');
console.log(typeof raw);पार्स किए गए JSON का सत्यापन
अविश्वसनीय टेक्स्ट को सुरक्षित रूप से टाइप किए गए मान में बदलने के लिए JSON.parse को प्रकार गार्ड के साथ मिलाएँ। यदि सत्यापन विफल हो जाए, तो गलत डेटा पर भरोसा करने के बजाय त्रुटि सँभालें।
type Config = { port: number };
function isConfig(v: unknown): v is Config {
return typeof v === 'object' && v !== null &&
'port' in v && typeof (v as any).port === 'number';
}
const data: unknown = JSON.parse('{"port":8080}');
if (isConfig(data)) console.log('Port:', data.port);कई गार्ड को क्रम से जोड़ना
जटिल इनपुट के लिए गार्ड की परतें बनाएँ: पहले व्यापक संरचना जाँचें, फिर उसे और सटीक करें। प्रत्येक गार्ड प्रकार को थोड़ा और संकीर्ण करता है, जिससे चरण-दर-चरण सटीक और सुरक्षित प्रकार मिलते हैं।
function process(v: unknown): string {
if (Array.isArray(v)) {
if (v.every((x) => typeof x === 'string')) {
return v.join('-');
}
}
return 'invalid';
}
console.log(process(['a', 'b']), process([1, 2]));अमान्य डेटा पर त्रुटि उत्पन्न करना
जब आवश्यक डेटा का सत्यापन विफल हो जाए, तो त्रुटि उत्पन्न करें। इसे never-वापसी वाले विफलता सहायक के साथ मिलाने पर मुख्य सफल पथ साफ़ और सही प्रकार वाला रहता है।
function asNumber(v: unknown): number {
if (typeof v === 'number') return v;
throw new Error('Expected a number');
}
console.log(asNumber(42));
try { asNumber('x'); } catch (e) { console.log('rejected'); }सब कुछ एक साथ रखना
पूरा पैटर्न यह है: डेटा को unknown के रूप में प्राप्त करें, गार्ड से उसका प्रकार संकीर्ण करें, फिर सटीक प्रकार पर काम करें। यह बिना प्रकार वाली बाहरी दुनिया और आपके प्रकार वाले कोड के बीच सुरक्षित सीमा है।
type Point = { x: number; y: number };
function isPoint(v: unknown): v is Point {
return typeof v === 'object' && v !== null &&
'x' in v && 'y' in v;
}
const input: unknown = { x: 1, y: 2 };
if (isPoint(input)) console.log(input.x + input.y);त्वरित जाँच
unknown को सुरक्षित ढंग से सँभालने की अपनी समझ जाँचें।
पुनरावलोकन: unknown को सँभालना
आपने unknown को इन तरीकों से संकीर्ण करना सीखा:
- आदिम प्रकारों के लिए
typeof, वर्ग के इंस्टेंस के लिएinstanceof। - ऑब्जेक्ट प्रॉपर्टीज़ के लिए
inऑपरेटर। value is Tलौटाने वाले कस्टम प्रकार गार्ड।- उन पर भरोसा करने से पहले
JSON.parseके परिणामों का सत्यापन।
अगला पाठ्यक्रम: प्रकार अभिकथन और कास्टिंग।
function isNonEmpty(v: unknown): v is string {
return typeof v === 'string' && v.length > 0;
}
console.log(isNonEmpty('hi'), isNonEmpty(''));एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “unknown का प्रकार-सुरक्षित प्रबंधन” पाठ निःशुल्क है?
हाँ—“unknown का प्रकार-सुरक्षित प्रबंधन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“unknown का प्रकार-सुरक्षित प्रबंधन” में मैं क्या सीखूँगा?
unknown मानों का सुरक्षित उपयोग करने से पहले उन्हें संकीर्ण करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“unknown का प्रकार-सुरक्षित प्रबंधन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- unknown और any को समझना
- never प्रकार और असंभव अवस्थाएँ
- फ़ंक्शन में void प्रकार
- unknown का प्रकार-सुरक्षित प्रबंधन