- GitHub - gvergnaud/hotscript: A library of composable functions for the type-level! Transform your TypeScript types in any way you want using functions you already know.
- A library of composable functions for the type-level! Transform your TypeScript types in any way you want using functions you already know. - gvergnaud/hotscript
यह AI द्वारा अनुवादित पोस्ट है।
durumis AI द्वारा सारांशित पोस्ट
- TypeScript में टाइप को सीधे टाइप करना पठनीयता को कम कर सकता है, और उच्च-क्रम प्रकारों का उपयोग करके इसे और अधिक साफ-सफाई से परिभाषित किया जा सकता है।
- hotscript लाइब्रेरी का उपयोग करके, आप उच्च-क्रम प्रकारों के आधार पर प्रकार परिभाषाओं को संक्षेप में प्रबंधित कर सकते हैं।
- विभिन्न प्रकार की सुविधाएँ प्रदान करने वाली hotscript लाइब्रेरी का उपयोग करके कोड की पठनीयता में सुधार करने और आवश्यकतानुसार उपयोग करने की अनुशंसा की जाती है।
एक उदाहरण के तौर पर एक कोड लेते हैं।
यह प्रत्येक शब्द के पहले अक्षर को अपरकेस में बदलने वाला कोड है।
const firstLetterUpperCase = (str : string) => { return str.split(" ").map(v => ${v.charAt(0).toUpperCase()}${v.slice(1)}).join(" "); } console.log(firstLetterUpperCase("hello world"));
यह सरल है, लेकिन इससे रिटर्न टाइप स्ट्रिंग हो जाता है, और टाइप का अनुमान लगाना असंभव हो जाता है।
type FirstLetterUppercase = T extends ${infer R}${infer RestWord} ${infer RestSentence} ? ${Uppercase<R>}${RestWord} ${FirstLetterUppercase<RestSentence>} : T extends ${infer R}${infer RestWord} ? ${Uppercase<R>}${RestWord} : never; const firstLetterUpperCase= (str : T) : FirstLetterUppercase => { return str.split(" ").map(v => ${v.charAt(0).toUpperCase()}${v.slice(1)}).join(" ") as FirstLetterUppercase ; } console.log(firstLetterUpperCase("hello world"));
निश्चित रूप से, हम टाइप को एक-एक करके टाइप करके भी ऐसा कर सकते हैं, जैसा कि ऊपर दिखाया गया है।
लेकिन ऊपर दिखाया गया टाइप पढ़ने में अच्छा नहीं लगता है। नेस्टेड टर्नरी ऑपरेटर और रिकर्सिव स्ट्रक्चर इस समस्या का कारण हैं।
लेकिन आश्चर्यजनक रूप से, टाइपस्क्रिप्ट उच्च-क्रम टाइप का समर्थन करता है।
और उच्च-क्रम टाइप के आधार पर, एक उच्च-क्रम टाइप लाइब्रेरी भी है।
इस लाइब्रेरी का उपयोग करके, हम टाइप परिभाषा को साफ-सुथरा बना सकते हैं।
type FirstLetterUppercase2= Pipe< T, [ Strings.Split<" ">, Tuples.Map<Strings.Capitalize>, Tuples.Join<" "> ] >; type A = FirstLetterUppercase2<"hello world">; // ^? type = "Hello World"
यह कोडयहाँ है।
इस तरह, हम उच्च-क्रम टाइप का उपयोग करके टाइप को सुगम और पठनीय बना सकते हैं।
इसके अलावा कई अन्य कार्य भी हैं, इसलिए साइट पर जाएँ, इसे देखें और आवश्यकतानुसार इसका उपयोग करें।