उत्तर
असल में, इसका मतलब है कि इंटरफेस की तुलना एक प्रकार के पहचान आधार के बजाय "बतख टाइपिंग" आधार पर की जाती है।
interface X1 { string Name { get; } }
interface X2 { string Name { get; } }
// ... later
X1 a = null;
X2 b = a; // Compile error! X1 and X2 are not compatible
और बराबर टाइपप्रति कोड:
निम्नलिखित सी # कोड पर विचार करें
interface X1 { name: string; }
interface X2 { name: string; }
var a: X1 = null;
var b: X2 = a; // OK: X1 and X2 have the same members, so they are compatible
कल्पना ज्यादा विस्तार से इस कवर नहीं करता है, लेकिन कक्षाएं "ब्रांडों" जिसका अर्थ है इंटरफेस के बजाय कक्षाओं के साथ लिखे गए एक ही कोड, में कोई त्रुटि होगी। सी # इंटरफेस में ब्रांड होते हैं, और इस प्रकार निहित रूप से परिवर्तित नहीं किया जा सकता है।
इसके बारे में सोचने का सबसे आसान तरीका यह है कि यदि आप इंटरफ़ेस एक्स से इंटरफ़ेस वाई में रूपांतरण करने का प्रयास कर रहे हैं, यदि एक्स में वाई के सभी सदस्य हैं, तो रूपांतरण सफल होता है, भले ही एक्स और वाई के समान नहीं हो नाम।
के बारे में सोचें।
class Employee { fire: = ..., otherMethod: = ...}
class Missile { fire: = ..., yetMoreMethod: = ...}
interface ICanFire { fire: = ...}
val e = new Employee
val m = new Missile
ICanFire bigGuy = if(util.Random.nextBoolean) e else m
bigGuy.fire
क्या होगा अगर हम ने कहा:
interface IButtonEvent { fire: = ...}
interface IMouseButtonEvent { fire: = ...}
...
टाइपप्रति इस की अनुमति देगा, सी # नहीं होगा।
टाइपस्क्रिप्ट का उद्देश्य "ढीला" टाइपिंग का उपयोग करने वाले डीओएम के साथ अच्छी तरह से काम करना है, यह टाइपस्क्रिप्ट के लिए एकमात्र समझदार विकल्प है।
मैं इसे पाठक अप करने के लिए छोड़ अगर वे "स्ट्रक्चरल टाइपिंग" ... की तरह तय करने के लिए ..
- 1. टाइपप्रति
- 2. टाइपप्रति
- 3. टाइपप्रति
- 4. टाइपप्रति
- 5. कैसे टाइपप्रति
- 6. संकलन टाइपप्रति त्रुटि कोड
- 7. टाइपप्रति गलत संदर्भ इस
- 8. टाइपप्रति: variadic कार्यों
- 9. टाइपप्रति समारोह तीर वस्तु
- 10. मैं कैसे टाइपप्रति
- 11. टाइपप्रति: स्ट्रिंग और स्ट्रिंग
- 12. पहुँच .constructor टाइपप्रति में परिभाषित
- 13. टाइपप्रति ईवेंट हैंडलर समारोह गलत संदर्भ
- 14. टाइपप्रति एएमडी मॉड्यूल संकलन आवश्यक साथ परिभाषित करता है
- 15. आयात jQuery और अन्य 3 पार्टी पुस्तकालय टाइपप्रति में एएमडी
- 16. लोड हो रहा है min.js साथ टाइपप्रति द्वारा उत्पन्न फ़ाइलों की आवश्यकता होती है
- 17. मैं टाइपस्क्रिप्ट के साथ बाहरी फ़ाइल कैसे आयात कर सकता हूं?
- 18. एक उरी
- 19. विजुअल स्टूडियो
- 20. टाइपस्क्रिप्ट.जेएस और टाइपस्क्रिप्ट सर्विसेज.जेएस के बीच क्या अंतर है?
- 21. टाइपस्क्रिप्ट: अंतर्निहित प्रकार
- 22. विस्तार कार्यक्षमता
- 23. टाइपस्क्रिप्ट कंपाइलर धीमा हो जाता है?
- 24. टाइपस्क्रिप्ट में सरणी को प्रारंभ करने, आरंभ करने और पॉप्युलेट करने के लिए कैसे करें?
- 25. क्षेत्र
- 26. क्या इंटरफ़ेस परिभाषा में गेटर्स/सेटर्स का उपयोग करना संभव है?
- 27. टाइपस्क्रिप्ट में घोंसला वर्ग संरचना घोषित करने का कोई तरीका?
- 28. एक अज्ञात फ़ंक्शन() कॉल में जावास्क्रिप्ट क्लास को एम्बेड क्यों करें?
- 29. मैं टाइपस्क्रिप्ट को गुणों के गतिशील जोड़ के बारे में कैसे बताऊं?
- 30. विजुअल स्टूडियो 2012
मैं इस संक्षिप्त पढ़ा है http://stackoverflow.com/questions/2831175/does-c-sharp- एक समकक्ष-से-स्केल-स्ट्रक्चरल-टाइपिंग जो इसे थोड़ा स्पष्ट करता है, लेकिन फिर भी यह जानना चाहेंगे कि इसका उपयोग टाइपस्क्रिप्ट में कैसे किया जाता है –