Ich habe die Promise-Typ-Deklaration für TypeScript von heruntergeladen DefinitivTypedund ich habe jetzt richtig die Deklaration vonVersprechen. Jetzt muss ich auf window.promise zugreifen, um Promise-Unterstützung von den Browsern zu überprüfen. Ich kann das nicht tun, weil die Eigenschaft window.Promise hier nicht deklariert ist, während Promise dies ist. Also habe ich versucht es selbst zu erklären:
interface Window {
Promise: typeof Promise;
}
Jetzt gibt es ein Problem. Das "Versprechen" in Art von Versprechen verweist eigentlich auf Window.Promise, nicht auf die Promise-Deklaration, also ist die Art von Versprechen jetzt <any>, was ich nicht will.
Wie kann ich Fenster korrekt deklarieren?
Antworten:
0 für die Antwort № 1Ich kann das nicht tun, weil die Eigenschaft window.Promise hier nicht deklariert ist, während Promise dies ist
Sie können nachsehen Promise
auf window
mit:
if(window["Promise"] === undefined){
// no support
}
Das "Versprechen" in typeof Promise verweist auf Window.Promise, nicht auf die Promise-Deklaration
Sie müssen vom lokalen Bereich aus auf die globale Bereichsdefinition zugreifen. Und wenn TypeScript auf den lokalen Bereich zugreift, suchen Sie wahrscheinlich nach so etwas (notice temp variable foo):
declare module Promise{export var mem:number;}
var foo:typeof Promise;
interface Window {
Promise: typeof foo;
}
window.Promise.mem = 123; // okay