Record<K, T>
टाइपस्क्रिप्ट में क्या मतलब है?
टाइपस्क्रिप्ट 2.1 ने Record
एक उदाहरण में इसका वर्णन करते हुए प्रकार पेश किया :
// For every properties K of type T, transform it to U function mapObject<K extends string, T, U>(obj: Record<K, T>, f: (x: T) => U): Record<K, U>
टाइपस्क्रिप्ट 2.1 देखें
और उन्नत प्रकार पृष्ठ का उल्लेख करता Record
मैप के साथ बढ़ रहा है प्रकार के तहत Readonly
, Partial
, और Pick
, क्या इसकी परिभाषा प्रतीत होता है में:
type Record<K extends string, T> = { [P in K]: T; }
रीडऑनली, आंशिक और पिक होमोमोर्फिक हैं जबकि रिकॉर्ड नहीं है। एक सुराग जो रिकॉर्ड होमोमोर्फिक नहीं है, वह यह है कि गुणों से कॉपी करने के लिए इनपुट प्रकार नहीं लिया जाता है:
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
और बस। उपरोक्त उद्धरणों के अलावा, typecriptlang.orgRecord
पर कोई अन्य उल्लेख नहीं है ।
प्रशन
क्या कोई सरल परिभाषा दे सकता है कि क्या
Record
है?क्या
Record<K,T>
केवल कहने का एक तरीका है "इस वस्तु पर सभी गुण टाइप होंगेT
"? शायद सभी गुण नहीं , क्योंकिK
कुछ उद्देश्य है ...क्या
K
जेनेरिक ऑब्जेक्ट पर अतिरिक्त कुंजियों को मनाK
करता है, या यह उन्हें अनुमति नहीं देता है और केवल संकेत देता है कि उनके गुणों को रूपांतरित नहीं किया गया हैT
?दिए गए उदाहरण के साथ:
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
क्या यह वास्तव में ऐसा ही है ?:
type ThreeStringProps = {prop1: string, prop2: string, prop3: string}