Gépelt: hozzáférés osztály globális modul / névtér

szavazat
4

Megvan a következő helyzetet:

module MyModule {
    export class Image {
        ...
    }

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

Ugyanakkor szeretnék egy példányának létrehozásához HTMLImageElement nem MyModule.Image. Hogyan határozza meg, hogy szeretnék inicializálni egy osztály, amely tartózkodik a globális modul / névtér?

Köszönöm!

A kérdést 08/10/2012 10:39
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
2

Nagyon sok módja van, de én azt ajánlom document.createElementbármilyen módon. Például:

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

Lehet létrehozni kényelmi funkciók vagy osztályokat, hogy lezárja ezt az Ön számára.

Egy másik módja az lenne, ha például, hogy egy hivatkozás az eredeti kép osztály előtt az osztály definíció:

var ImageElement = Image;

...

export class Image {
    ...
}

var image = new ImageElement()

azonban nem ismeri fel, mint HTMLImageElementpéldául, azaz nincs megfelelő kódot befejezését.

szerkesztés : itt a nem dolgozó kísérletet, hogy fokozza a Windowfelület, mint említettük, a megjegyzések:

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

Ez rendben lefordul (azaz hiba nélkül), de a Visual Studio ez hibajelzés, mondván Duplicate Identifier 'Image', és megpróbál létrehozni egy példányt keresztül new window.Image()vannak megjelölve mond new expressions only valid on constructors. Érdekes, hogy jól működik más felületek, és mint már említettük, hogy rendben lefordul.

Válaszolt 08/10/2012 14:50
a forrás felhasználó

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