मैं Typecriptlang.org पर खेल के मैदान में एक बल्कि विकसित उदाहरण का परीक्षण करने का प्रयास कर रहा हूं। मेरा इनवेबल इंटरफ़ेस एक स्ट्रिंग कन्स्ट्रक्टर तर्क निर्दिष्ट करता है। मेरी फैक्ट्री विधि के शरीर में मैं इस बाधा का सम्मान नहीं कर रहा हूं (या तो एक संख्या का उपयोग करके या शून्य तर्क सूची के साथ कॉल करके)। मुझे गड़बड़ी या चेतावनी में कोई त्रुटि नहीं मिल रही है।टाइपस्क्रिप्ट: नया() इंटरफ़ेस अनुबंध लागू नहीं किया गया
क्या मैंने कुछ गलत किया है या यह एक बग है?
interface INewable<T> {
new(param: string): T;
}
interface IToStringable {
toString(): string;
}
module Factory {
export function createInstance<T extends IToStringable>(ctor: INewable<T>): T {
return new ctor(1024); //why doesn't this fail?
}
}
var d = Factory.createInstance(Function);
alert(d.toString());
संपादित करें: सरल रूप:
function createInstance<T>(ctor:new(s:string)=>T):T {
return new ctor(42); //why doesn't this fail either
}
दर्शाती ही बग।