में सजावटी के साथ कन्स्ट्रक्टरों को सही ढंग से कैसे लपेटें, सजावट वाले वर्ग को लपेटने की प्रक्रिया सुपरक्लास को उस वर्ग के गुणों तक पहुंचने में असमर्थ होने का कारण बनती है। क्यूं कर?टाइपस्क्रिप्ट
- एक डेकोरेटर जो एक नया निर्माता कि सटीक एक ही बात करना चाहिए के साथ एक वर्ग के निर्माता की जगह बनाता है:
मैं कुछ कोड है कि है।
- एक संपत्ति के साथ एक बेस क्लास बनाता है।
- रैपिंग सजावट के साथ बेस क्लास लपेटता है।
- एक वर्ग बनाता है जो बेस क्लास को बढ़ाता है।
- विस्तारित कक्षा पर संपत्ति तक पहुंचने का प्रयास करता है। यह वह हिस्सा है जो विफल रहता है।
function wrap(target: any) { // the new constructor var f: any = function (...args) { return new target(); } f.prototype = target.prototype; return f; } @wrap class Base { prop: number = 5; } class Extended extends Base { constructor() { super() } } var a = new Extended() console.log(new Extended().prop) // I'm expecting 5 here, but I get undefined.
मुझे यकीन है कि यह सामान्य रूप में या तो प्रोटोटाइप या विशिष्ट तरीका है कि टाइपप्रति उन्हें संभालती है कि मैं समझ नहीं होने के कुछ अति सूक्ष्म अंतर है कर रहा हूँ:
यहाँ कोड है।
मैं तरीकों और इस लेख से संपत्ति सज्जाकार के बारे में सीखा: http://blog.wolksoftware.com/decorators -मैटडाटा-प्रतिबिंब-इन-टाइपस्क्रिप्ट-से-नौसिखिया-से-विशेषज्ञ-भाग-ii – TSV