Typescript: Küresel modül / ad alanında erişim sınıfı

oy
4

Ben şu durum var:

module MyModule {
    export class Image {
        ...
    }

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

Ancak, ben HTMLImageElement değil MyModule.Image bir örneğini oluşturmak istiyorum. Nasıl küresel modül / ad alanında bulunan bir sınıf örneğini istediğinizi belirtebilirim?

Teşekkür ederim!

Oluştur 08/10/2012 saat 10:39
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
2

Orada birçok yolu vardır, ama ben kullanarak öneriyoruz document.createElementolursa olsun bir şekilde. Örneğin:

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

Sizin için sar kolaylık işlevleri veya sınıflar oluşturabilir.

senin sınıf tanımının önce orijinal görüntü sınıfına referans oluşturmak için örneğin olmak istiyorsunuz diğer yollarından biri:

var ImageElement = Image;

...

export class Image {
    ...
}

var image = new ImageElement()

ancak olarak kabul edilmez HTMLImageElementhiçbir uygun kod tamamlama yani, örneğin.

düzenlemek : İşte benim var olmayan çalışma genişletmek için girişimde Windowyorumlarda belirtildiği gibi arayüz:

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

Bu söyleyerek doğru (yani hatasız), ancak Visual Studio'da bir hata olarak işaretlediğini derler Duplicate Identifier 'Image've aracılığıyla bir örneği oluşturmaya çalışır new window.Image()söyleyerek işaretlenir new expressions only valid on constructors. İlginçtir diğer arayüzleri üzerinde çalışıyor ve önce de belirtildiği gibi, doğru derler.

Cevap 08/10/2012 saat 14:50
kaynak kullanıcı

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