Modül içinde global bir değişken çağırma


249

Ben Projects.tsbir bootstrap eklentisi bildirilen genel bir değişken başvurmak istediğiniz adlı bir patlama dosya var bootbox.js.

bootboxTypeScript sınıfları içinden çağrılan bir değişkene erişmek istiyorum .

Mümkün mü?


3
Bootbox için bir DefinitelyTyped tanımı var şimdi nuget.org/packages/bootbox.TypeScript.DefinitelyTyped
ThisGuy

Yanıtlar:


404

Derleyiciye bildirildiğini söylemelisiniz:

declare var bootbox: any;

Daha iyi tür bilginiz varsa, bunu da ekleyebilirsiniz any.


5
': Herhangi bir' biti gerçekten atlayabilir.
Oleg Mihailik

37
Belirli bir tür bilgi eklemelerini öneriyorum ve cevap nasıl ve nerede koyacaklarını gösteriyor olsa da, bu bir Soru-Cevap formatı için iyi bir örnek olmaz.
Fenton

14
Bizim için yazı tipi yeni başlayanlar, bu declareifadeyi nereye koyacağız ?
Bob Horn

Bu küresel işlevler için de iyi bir çözüm müdür? Gibi bir şey yerleştirmek declare var myFunction: any;?
jonathanrz

1
@jonathanrz evet, o kadar ileri gitmek isterseniz de özel bir imza olabilir, örneğindeclare var myFunction: (input: string) => void;
Fenton

47

Zaten bilmeyenler için, declareifadeyi şu şekilde dışına koymanız gerekir class:

declare var Chart: any;

@Component({
  selector: 'my-component',
  templateUrl: './my-component.component.html',
  styleUrls: ['./my-component.component.scss']
})

export class MyComponent {
    //you can use Chart now and compiler wont complain
    private color = Chart.color;
}

Gelen TypeScriptbir kaynaklanmış olmayabilir bir değişken tanımlamak istediğiniz yere beyan anahtar kelime kullanılır TypeScriptdosyası.

Derleyiciye, bu değişkenin çalışma zamanında bir değere sahip olacağını biliyorum, bu yüzden bir derleme hatası atmayın.


15

Referans verdiğiniz ancak asla mutasyona uğramadığınız bir şeyse, şunu kullanın const:

declare const bootbox;

12

Sohnee çözümleri daha temizdir, ancak aynı zamanda

window["bootbox"]

3

Tüm proje boyunca bu değişkene bir referans almak istiyorsanız, bir yerde d.tsdosya oluşturun , örn globals.d.ts. Genel değişken bildirimlerinizle doldurun, örn:

declare const BootBox: 'boot' | 'box';

Şimdi proje boyunca herhangi bir yere başvurabilirsiniz, tıpkı şöyle:

const bootbox = BootBox;

İşte bir örnek .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.