संभव डुप्लिकेट:
How does prototype extend on typescript?विस्तार कार्यक्षमता
मैं वर्तमान में टाइपप्रति सीख रहा हूँ, और पता है कि कैसे यह मौजूदा वस्तुओं में कार्यक्षमता जोड़ने के लिए संभव है करना चाहते हैं। मान लें कि मैं स्ट्रिंग ऑब्जेक्ट में फू के लिए कार्यान्वयन जोड़ना चाहता हूं। समझना कि टाइपप्रति कक्षाएं, इंटरफेस और मॉड्यूल मुझे निम्नलिखित की कोशिश करने के लिए नेतृत्व
1. संदर्भ जावास्क्रिप्ट कार्यान्वयन टाइपप्रति से
String.prototype.Foo = function() {
// DO THIS...
}
खुला समाप्त हो जाता है, सफलता के बिना: जावास्क्रिप्ट में मैं यह कर होगा
JavaScript:
String.prototype.Foo = function() {
// DO THIS...
}
TypeScript:
var x = "Hello World";
x.Foo(); //ERROR, Method does not exist
2. इंटरफ़ेस
बढ़ाएँ 0interface String {
Foo(): number;
}
var x = "Hello World";
x.Foo(); //Exists but no implementation.
3. वर्ग
class String {
Foo(): number {
return 0;
}
}
// ERROR: Duplicate identifier 'String'
आप इन परिणामों से देख सकते हैं, अब तक मैं एक अंतरफलक अनुबंध के माध्यम से विधि जोड़ने के लिए सक्षम किया गया है, लेकिन कोई कार्यान्वयन का विस्तार है, तो, कैसे करना है मैं पूर्व-मौजूदा स्ट्रिंग क्लास के हिस्से के रूप में अपनी फू विधि को परिभाषित और कार्यान्वित करने के बारे में जाता हूं?
वास्तव में, कि कैसे यह करने के लिए है है। याद रखें, टाइपस्क्रिप्ट स्वयं में एक भाषा नहीं है, यह सिर्फ एक वाक्य रचनात्मक चीनी है। तो 'जावास्क्रिप्ट शैली' में कुछ लिखना एक अच्छा अभ्यास है जिसमें कोई भी कमी नहीं होती है। –
क्या यह समाधान वास्तव में ** स्ट्रिंग ** के साथ काम करता है? क्योंकि मैं _exact_ वही चीज़ कर रहा हूं और संकलन त्रुटियों को प्राप्त करता हूं कि संपत्ति स्ट्रिंग प्रकार पर मौजूद नहीं है। मैं क्या खो रहा हूँ? (टीएससी 1.4.1 का उपयोग करके) – sebas2day
@ sebas2day हाँ यह काम करता है - http://tinyurl.com/ouwh3ln – series0ne