/ / Wie kann ich window.Promise deklarieren, wenn ich die richtige Promise-Deklaration habe? - Typoskript

Wie kann ich window.Promise erklären, wenn ich korrekte Promisedeklaration habe? - Typoskript

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 № 1

Ich 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