infer के व्यावहारिक उपयोग: Promise को खोलना
Promise, Array और कस्टम रैपर प्रकारों को खोलें
infer के व्यावहारिक उपयोग: Promise को खोलना, CoddyKit पर TypeScript Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह TypeScript Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
आवरण हटाने की समस्या
असमकालिक कोड के साथ काम करते समय आपको अक्सर Promise मिलता है और उसके भीतर मौजूद T की आवश्यकता होती है। infer कीवर्ड इस निष्कर्षण को दोबारा उपयोग करने योग्य बनाता है।
type Awaited<T> = T extends Promise<infer U> ? U : T;
type A = Awaited<Promise<string>>; // string
type B = Awaited<number>; // numberअंतर्निर्मित Awaited उपयोगिता
TypeScript 4.5 में अंतर्निर्मित Awaited जोड़ा गया, जो नेस्टेड प्रॉमिस को पुनरावर्ती रूप से संभालता है।
type A = Awaited<Promise<Promise<string>>>; // string
// Handles arbitrary nesting automaticallyकस्टम गहराई के साथ आवरण हटाना
Awaited के अंतर्निर्मित होने से पहले डेवलपर infer के साथ पुनरावर्ती प्रकारों का उपयोग करके प्रॉमिस से आवरण हटाते थे।
type DeepAwaited<T> =
T extends Promise<infer U> ? DeepAwaited<U> : T;
type A = DeepAwaited<Promise<Promise<number>>>; // numberसरणी के तत्वों से आवरण हटाना
यही infer पैटर्न सारणी से तत्व प्रकार निकालता है, जो अंतर्निर्मित T[number] तरीके के समतुल्य है।
type Element<T> = T extends (infer U)[] ? U : never;
type A = Element<string[]>; // string
type B = Element<number[]>; // numberऑब्ज़र्वेबल प्रकारों से आवरण हटाना
RxJS ऑब्ज़र्वेबल के लिए infer द्वारा उत्सर्जित प्रकार निकाला जाता है।
type ObservableType<T> = T extends Observable<infer U> ? U : never;
type A = ObservableType<Observable<User>>; // Userफ़ंक्शन की वापसी से आवरण हटाना
असमकालिक फ़ंक्शन का समाधानित मान प्राप्त करने के लिए ReturnType और Awaited को मिलाएँ।
async function getUser(): Promise<User> { /* ... */ }
type UserResult = Awaited<ReturnType<typeof getUser>>; // Userनेस्टेड आवरणों से आवरण हटाना
Promise जैसी कई परतों में लिपटे प्रकारों को संभालने के लिए आप infer को क्रम से जोड़ सकते हैं।
type UnwrapPromiseArray<T> =
T extends Promise<infer U>
? U extends (infer V)[]
? V
: U
: T;
type A = UnwrapPromiseArray<Promise<User[]>>; // Userसंरचना के आधार पर सशर्त आवरण हटाना
केवल कुछ प्रकारों से सशर्त रूप से आवरण हटाने के लिए infer का उपयोग करें और अन्य प्रकारों को अपरिवर्तित छोड़ दें।
type MaybeUnwrap<T> =
T extends Promise<infer U> ? U : T extends (infer V)[] ? V : T;
type A = MaybeUnwrap<Promise<string>>; // string
type B = MaybeUnwrap<number[]>; // number
type C = MaybeUnwrap<boolean>; // booleanप्रकारयुक्त एपीआई डेटा-प्राप्ति आवरण
समाधानित डेटा प्रकार लौटाने वाला सामान्य डेटा-प्राप्ति आवरण infer-आधारित आवरण-हटाने का उत्कृष्ट अनुप्रयोग है।
async function fetchData<T>(url: string): Promise<T> {
const res = await fetch(url);
return res.json() as T;
}
type UserData = Awaited<ReturnType<typeof fetchData<User>>>; // Userत्रुटि-सुरक्षित आवरण हटाना
Result पैटर्न को infer के साथ मिलाने पर विभेदित संघ से सफलता का प्रकार निकाला जा सकता है।
type Ok<T> = { ok: true; value: T };
type Err = { ok: false; error: string };
type ExtractOk<T> = T extends Ok<infer V> ? V : never;
type A = ExtractOk<Ok<number> | Err>; // numberपुनरावलोकन: infer के साथ आवरण हटाना
infer कीवर्ड आवरणों — प्रॉमिस, सारणियों, ऑब्ज़र्वेबल और Result प्रकारों — से प्रकार निकालने का बहुउपयोगी साधन है। अंतर्निर्मित Awaited असमकालिक आवरण हटाने को संभालता है; अन्य संरचनाओं के लिए कस्टम प्रकारों का उपयोग करें।
त्वरित जाँच
असमकालिक फ़ंक्शन का समाधानित मान प्रकार प्राप्त करने का सबसे अच्छा तरीका क्या है?
आपने क्या सीखा
infer-आधारित आवरण-हटाना व्यावहारिक TypeScript असमकालिक कोड के लिए उपयोगी साधन है। प्रॉमिस के लिए अंतर्निर्मित Awaited का उपयोग करें और सारणियों, ऑब्ज़र्वेबल तथा Result पैटर्न के लिए अपने आवरण-हटाने वाले प्रकार बनाएँ।
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 101
- पाठ
- 352
अक्सर पूछे जाने वाले प्रश्न
क्या “infer के व्यावहारिक उपयोग: Promise को खोलना” पाठ निःशुल्क है?
हाँ—“infer के व्यावहारिक उपयोग: Promise को खोलना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और TypeScript Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। TypeScript Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“infer के व्यावहारिक उपयोग: Promise को खोलना” में मैं क्या सीखूँगा?
Promise, Array और कस्टम रैपर प्रकारों को खोलें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ TypeScript Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या TypeScript Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर TypeScript Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“infer के व्यावहारिक उपयोग: Promise को खोलना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस TypeScript Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर TypeScript Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- सशर्त प्रकारों में infer को समझना
- शुरुआत से ReturnType और Parameters बनाना
- गहराई से नेस्टेड अनुमान पैटर्न
- infer के व्यावहारिक उपयोग: Promise को खोलना