Κατηγορία πρόσβαση στην παγκόσμια ενότητα / namespace: γραφομηχανή

ψήφοι
4

Έχω την ακόλουθη κατάσταση:

module MyModule {
    export class Image {
        ...
    }

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

Ωστόσο, θέλω να δημιουργήσω ένα παράδειγμα της HTMLImageElement, δεν MyModule.Image. Πώς μπορώ να καθορίσετε ότι θέλω να υπόσταση σε μια κατηγορία που κατοικεί στην παγκόσμια ενότητα / namespace;

Ευχαριστώ!

Δημοσιεύθηκε 08/10/2012 στις 10:39
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
2

Υπάρχουν πολλοί τρόποι, αλλά θα ήθελα να συστήσω τη χρήση document.createElementμε οποιοδήποτε τρόπο. Για παράδειγμα:

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

Θα μπορούσατε να δημιουργήσετε λειτουργίες άνεσης ή τις κατηγορίες που τυλίξετε αυτό για σας.

Ένας από τους άλλους τρόπους θα ήταν, για παράδειγμα για να δημιουργήσετε μια αναφορά στην αρχική κατηγορία Image πριν από τον ορισμό της κατηγορίας σας:

var ImageElement = Image;

...

export class Image {
    ...
}

var image = new ImageElement()

Ωστόσο, δεν θα πρέπει να αναγνωριστεί ως HTMLImageElementπαράδειγμα, δηλαδή χωρίς κατάλληλη ολοκλήρωση κώδικα.

edit : εδώ είναι μου μη εργάσιμες προσπάθεια να αυξήσει το Windowπεριβάλλον, όπως αναφέρεται στα σχόλια:

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

Συντάσσει σωστά (δηλαδή χωρίς λάθη), αλλά στο Visual Studio είναι επισημαίνεται ως σφάλμα, λέγοντας 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