यह कुछ है जो मैं टाइपस्क्रिप्ट के पुराने संस्करणों में कर रहा हूं और मैं इस विधि का उपयोग सी # में करता हूं, लेकिन यह टाइपस्क्रिप्ट के नवीनतम 1.0 संस्करण में काम नहीं करता है।टाइप 0 की बाधा के लिए समर्थन के नुकसान के आसपास काम करना
यहाँ क्या अतीत में काम किया है:
class Base<T extends Base<T>> {
public children : Array<T>;
doAction() {
this.children[0].promise(); // used to work
}
promise() : T {
return this; // used to work
}
}
class Child extends Base<Child> {
public myString: string;
}
new Child().promise().myString; // used to work
सब कुछ सद्भाव में काम करता था।
अब टाइपप्रति 1.0 में मैं Base<T extends Base<T>>
परिभाषा पर इस त्रुटि मिलती है:
एक प्रकार पैरामीटर की बाधा एक ही प्रकार के पैरामीटर सूची से किसी भी प्रकार पैरामीटर संदर्भ नहीं दे सकता।
कक्षाओं के बाहर किसी भी कस्ट की आवश्यकता के बिना या "किसी भी" को कास्टिंग किए बिना मैं इस उदाहरण कक्षा को कैसे काम कर सकता हूं? शायद यह पैटर्न बदला जाना चाहिए?
ध्यान दें कि इस पद्धति को अब जरूरी होगा जब टाइपप्रति एक [बहुरूपी इस] (https का समर्थन करता है। कॉम/माइक्रोसॉफ्ट/टाइपस्क्रिप्ट/पुल/4 9 10) टीएस 1.7 में। –