třída přístup na globální modulu / namespace: strojopisem

hlasů
4

Mám následující situaci:

module MyModule {
    export class Image {
        ...
    }

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

Nicméně chci vytvořit instanci HTMLImageElement, ne MyModule.Image. Jak mohu určit, že chci vytvořit instanci třídy, která je umístěna v globální modulu / jmenného prostoru?

Děkuji!

Položena 08/10/2012 v 10:39
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Existuje mnoho způsobů, ale já bych doporučit používat document.createElementjakýmkoliv způsobem. Například:

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

Mohli byste vytvořit komfortní funkce nebo třídy, které se táhnou za vás.

Jedním z dalších způsobů, jak by se například vytvořit odkaz na původní třídě obrazu před definice třídy:

var ImageElement = Image;

...

export class Image {
    ...
}

var image = new ImageElement()

nebude však být uznány jako HTMLImageElementnapříklad, tedy bez příslušného doplňování kódu.

editovat : tady je moje nepracující pokus rozšířit Windowrozhraní jak bylo uvedeno v komentáři:

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

To zkompiluje správně (tedy bez chyb), ale ve Visual Studiu je to označeno za chybu, říká Duplicate Identifier 'Image', a snaží se vytvořit instanci pomocí new window.Image()jsou označeny říká new expressions only valid on constructors. Zajímavé je, že funguje na další rozhraní, a jak již bylo zmíněno, je správně zkompiluje.

Odpovězeno 08/10/2012 v 14:50
zdroj uživatelem

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