"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > jsDoc npm मॉड्यूल खोज

jsDoc npm मॉड्यूल खोज

2024-11-02 को प्रकाशित
ब्राउज़ करें:484

jsDoc npm module quest

वर्तमान में मैं लीगेसी जेएस/रिएक्ट एप्लिकेशन पर काम/रखरखाव कर रहा हूं, जहां टाइपस्क्रिप्ट पर दोबारा काम करने का कोई विकल्प नहीं है, इसलिए मैं जेएस के लिए मौजूदा विकास समय प्रकार प्रणाली के रूप में जेएसडॉक को चालू कर रहा हूं।

टीएलडीआर;

टाइपस्क्रिप्ट एनपीएम मॉड्यूल jsDoc द्वारा बनाया गया है, यूज़डक 70LOC के तहत रिडक्स के स्वर्ण युग को वापस लाता है। यह मॉड्यूल विकास के समय में मुख्य उपयोग का मामला है, जब आपकी जटिल स्थिति को सुरक्षित रहने में मदद मिलती है।

const [state, quack] = useDuck(reducer, initialState, actionsMap);

जेएसडॉक-डक

jsDoc पर टाइपस्क्रिप्ट का मार्ग

टाइपस्क्रिप्ट के साथ मेरा अनुभव थोड़ा और गहरा हो गया जब मैंने एक हल्की प्रतिक्रिया स्थिति एनपीएम लाइब्रेरी बनाई: प्रतिक्रिया-राज्य-फैक्टरी

User declared 
state and actions types 
  -> useStateFactory 
  -> [state, dispatchedActoionCollection]

JsDoc सीमाओं का परीक्षण

अपने कार्यों में मदद के लिए कुछ jsDoc एनोटेशन का उपयोग शुरू करने के बाद, अगला चरण थोड़ा अधिक महत्वाकांक्षी है: इस मॉड्यूल को jsDoc पर फिर से काम करना। पहली नजर में यह एक असंभव मिशन है. लेकिन jsDoc को समझने में कुछ सप्ताह बिताने के बाद मुझे ट्यूनल के अंत में कुछ रोशनी दिखाई दी।

भयावह प्रकार की प्रणाली: रेड्यूसर

एक निश्चित बिंदु के तहत मुझे jsDoc क्षमता की एक कठिन सीमा मिली, जब मैं एक रेड्यूसर फ़ंक्शन लिखने का प्रयास करता हूं, जहां परिणाम एक क्वैक है लेकिन निश्चित रूप से यह एक खाली {} शुरू कर रहा है। तो केवल रेड्यूसर रन के अंत ने उचित क्वैक बनाया क्योंकि उस प्रकार की वस्तु के बारे में उत्सुकता है जिसमें सभी अनुरोधित कुंजी शामिल हैं। इसलिए यह समस्या अब तक मैं हल नहीं कर सका, यदि कोई कोई अच्छा विचार दे सकता है कि मैं इसे कैसे हल कर सकता हूं तो कृपया मेरे साथ साझा करें या सहयोगी के रूप में इस मॉड्यूल विकास में शामिल हों।

एक और जाल: टीएस के बिना मॉड्यूल में कोई प्रकार नहीं

शुरुआत में मैं एक एकल js फ़ाइल बनाता हूं जिसमें सभी आवश्यक jsDoc @typedef शामिल होते हैं, देर-सबेर यह काम करेगा। और वह क्षण मुझे लगता है कि उनके लिए नोड मॉड्यूल बनाने का सिर्फ एक कदम है।
लेकिन दुखद तथ्य यह है कि एनपीएम मॉड्यूल पर, जिसमें निर्यातित प्रकार शामिल हैं, केवल जेएसडॉक के साथ काम नहीं कर रहे हैं, इसलिए डी.टीएस को संकलित करना अनिवार्य है, इसलिए अंत में जेएसडॉक मॉड्यूल 100% जेएस न कहें, इसके बजाय बिल्ड टाइपस्क्रिप्ट का भी उपयोग करें।

jsdoc-duck मॉड्यूल में @typedef

जैसा कि आप dev.to फोरम में पहचानते हैं, सिंटैक्स हाइलाइट jsDoc को नहीं पहचानता है। मेरे परीक्षण में अन्य गलत चीजें यह @typedef केवल तभी काम करती है जब आप एक पंक्ति लिखते हैं, इसलिए यह स्वच्छ कोड के विरुद्ध जा रहा है।

अपने अगले ब्लॉगपोस्ट में मैं इस लाइब्रेरी का ठोस उपयोग-केस लिखूंगा, सॉर्ट करें: यूज़रेड्यूसर के साथ रिएक्ट स्टेट हैंडलिंग को सरल बनाएं और सुरक्षित करें।

/**
 * @template T - Payload Type
 * @typedef {T extends { type: infer U, payload?: infer P } ? { type: U, payload?: P } : never} ActionType
 */

// @ts-ignore
/** @template AM - Actions Map @typedef {{ [K in AM['type']]: K }} Labels */

// @ts-ignore
/** @template AM - Actions Map @typedef {{ [T in AM["type"]]: Extract extends { payload: infer P } ? (payload: P) => void : () => void }} Quack */

/**
 * @template ST - State
 * @template AM - Actions Map
 * @typedef {(state: ST, action: AM) => ST} Reducer
 */
विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/pengeszikra/jsdoc-npm-module-quest-2f7a?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3