2015-11-23 11 views
9

मैं टाइपस्क्रिप्ट में & ऑपरेटर की परिभाषा को खोजने के लिए संघर्ष कर रहा हूं। मैं हाल ही में निम्न कोड भर में आ गए हैं:टाइपस्क्रिप्ट और ऑपरेटर

type IRecord<T> = T & TypedMap<T>; 

क्या है कि ऑपरेटर क्या करता है, और यह कैसे संघ प्रकार | से अलग है?

उत्तर

18

ऐसा लगता है कि यह भाषा विशिष्टता के Intersection Types भाग से है। विशेष रूप से, &intersection type literal प्रतीत होता है। इसके लिए यह क्या करता है:

छेड़छाड़ प्रकार उन मानों का प्रतिनिधित्व करते हैं जो एक साथ कई प्रकार होते हैं। एक चौराहे प्रकार का एक मूल्य & बी एक मान है जो प्रकार ए और प्रकार बी दोनों प्रकार है। छेड़छाड़ प्रकार चौराहे प्रकार अक्षर (अनुभाग 3.8.7) का उपयोग करके लिखे गए हैं।

कल्पना एक उपयोगी टुकड़ा पेशकश करने के लिए बेहतर व्यवहार को समझने पर चला जाता है:

interface A { a: number } 
interface B { b: number } 

var ab: A & B = { a: 1, b: 1 }; 
var a: A = ab; // A & B assignable to A 
var b: B = ab; // A & B assignable to B 

क्योंकि ab है प्रकार के दोनों Aऔर प्रकार B की, हम इसे a को असाइन कर सकते हैं और/या b। यदि ab केवल B प्रकार के थे, तो हम इसे केवल b पर असाइन कर सकते थे।

आपके द्वारा साझा किया गया कोड this comment on GitHub से हो सकता है, जो अंतरंग प्रकारों का उल्लेख करता है।

संबंधित मुद्दे