टाइपप्रति: वैश्विक मॉड्यूल / नाम स्थान में पहुँच वर्ग

वोट
4

मैं निम्नलिखित स्थिति है:

module MyModule {
    export class Image {
        ...
    }

    var image = Image(); // returns an instance of MyModule.Image
}

हालांकि, मैं HTMLImageElement, नहीं MyModule.Image का एक उदाहरण बनाना चाहते हैं। मैं यह कैसे निर्दिष्ट है कि मैं एक वर्ग है जो वैश्विक मॉड्यूल / नाम स्थान में रहता है का दृष्टांत करना चाहते हैं?

धन्यवाद!

08/10/2012 को 10:39
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
2

ऐसे कई तरीके हैं, लेकिन मैं का उपयोग कर की सिफारिश करेंगे document.createElementजो कुछ भी तरह से। उदाहरण के लिए:

var image = <HTMLImageElement>document.createElement('img');

आप सुविधा कार्यों या वर्गों है कि आप के लिए यह लपेट बना सकते हैं।

अन्य तरीकों उदाहरण के लिए होगा अपनी कक्षा परिभाषा से पहले मूल छवि वर्ग के लिए एक संदर्भ बनाने के लिए में से एक:

var ImageElement = Image;

...

export class Image {
    ...
}

var image = new ImageElement()

लेकिन यह रूप में मान्यता प्राप्त नहीं किया जाएगा HTMLImageElement, उदाहरण के लिए कोई उचित कोड पूरा होने अर्थात्।

संपादित करें : यहाँ मेरी है गैर काम कर बढ़ाने के लिए प्रयास Windowइंटरफ़ेस टिप्पणी में उल्लेख किया:

interface Window {
    Image: new(width?: number, height?: number) => HTMLImageElement;
}

यह सही ढंग से संकलित (यानी त्रुटियों के बिना), लेकिन दृश्य स्टूडियो में यह एक त्रुटि के रूप में चिह्नित है, कह रही है Duplicate Identifier 'Image', और के माध्यम से एक उदाहरण बनाने का प्रयास करता new window.Image()कह चिह्नित किये जाते हैं new expressions only valid on constructors। दिलचस्प बात यह अन्य इंटरफेस पर ठीक काम करता है, और पहले ही उल्लेख किया है, यह सही ढंग से संकलित करता है।

08/10/2012 को 14:50
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more