Hoe maak je een nieuwe functie op het venster of zelf (die is toegewezen-interface Venster door lib.d.ts) te creëren?

stemmen
1

uiteraard Ik probeer te krijgen facebooks asynchrone init werkt. Doen, moet ik een functie object venster genaamd fbAsyncInit te creëren. Ik heb simillar probleem, bij het schrijven van web werknemers, want er ik wil self.postMessage gebruiken, maar zelf is weer met als Interface-venster. Toch probeer ik om het te doen, het typscript compiler is niet blij met me een veld toe te voegen aan het venster dat niet is gespecificeerd in Window interface. Ik heb geprobeerd om het te doen als dit op het eerste:

interface WindowFB extends Window { 
    fbAsyncInit: ()=>any;
}

declare var window: WindowFB;

dat hielp niet, dus ik probeerde een aantal andere dingen en zijn erin geslaagd om het type checker gelukkig te krijgen, maar het lijkt alsof het net wordt afgeluisterd (want voor de oplossingen die het is niet gelukkig 100%). Is er iemand weet wat de juiste oplossing voor dit zou kunnen zijn?

De vraag is gesteld op 07/10/2012 om 22:24
bron van user
In andere talen...                            


1 antwoorden

stemmen
3

De 'Window' interface is geopend. Je kunt gewoon schrijven:

interface Window {
    fbAsyncInit: () => any;
}

window.fbAsyncInit();

Door enkele bugs rond lib.d.ts, zal dit niet helemaal werken in het typoscript Playground, maar de command-line compiler moet in staat zijn om dit te accepteren.

antwoordde op 07/10/2012 om 22:36
bron van user

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