2013-07-15 18 views
25

क्या आप जेनिक्स को सुरक्षित प्रकारों से परिभाषित कर सकते हैं, जैसा कि आप सी # के साथ कर सकते हैं?प्रकार सुरक्षा के साथ टाइपस्क्रिप्ट जेनरिक परिभाषित

उदा।

public bool Foo<T>() where T : struct { /* */ } 

टाइपप्रति अब जेनरिक है, लेकिन मैं एक ऐसी ही कार्यवाही नहीं कर सकता?

धन्यवाद।

उत्तर

57

ठीक है ऐसा लगता है कि आप यह कर सकते हैं:

Foo<T extends IBar>() { /* */ } 

और वह सभी कॉल्स IBar लागू करने के लिए टी की आवश्यकता बनाने के लिए लगता है।

+4

+1 - स्पॉट ऑन। यह जेनेरिक के जावा कार्यान्वयन से लिया जाता है - 'विस्तार' कीवर्ड का उपयोग किसी इंटरफ़ेस या कक्षा को बाधित करने के लिए किया जाता है। – Fenton

+0

लेकिन ऐसा लगता है कि यह अभी तक कुछ भी लागू नहीं करता है। – Tarion

+1

ध्यान दें कि यदि आप इंटरफेस द्वारा बाध्य करना चाहते हैं, तो आप 'लागू' के बजाय 'विस्तारित' कीवर्ड का उपयोग करते हैं। उदाहरण के लिए 'Foo '। –

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