2016-04-22 7 views
0

Ich habe gerade eine Javascript-Bibliothek mit dem Namen History.jsWie deklarierte Variablen in lib.d.ts erweitern?

heruntergeladen Es ist ein Wrapper für History-Objekt in Javascript, um korrekte Crossplatform-Funktionalität durchzuführen.

Sie können es in einer normalen Javascript-Umgebung wie diesem verwenden, z. so: History.pushState (Daten, Titel, URL);

Aber ich möchte es in einer Typescript-Umgebung verwenden, und das bedeutet, ich muss die Funktionen/Variablen in einer d.ts-Datei deklarieren, aber die Variable Verlauf ist bereits im Standard lib.d.ts deklariert.

Ich kann es hier (line 10475, 10485 & 16363) siehe:

interface History { 
    length: number; 
    state: any; 
    back(distance?: any): void; 
    forward(distance?: any): void; 
    go(delta?: any): void; 
    pushState(statedata: any, title?: string, url?: string): void; 
    replaceState(statedata: any, title?: string, url?: string): void; 
} 

declare var History: { 
    prototype: History; 
    new(): History; 
} 

declare var history: History; 

So jetzt meine Frage ist, wie ich die Bibliothek history.js verwenden kann? Was muss ich tun, um "History.pushState (data, title, url)" schreiben zu können? in Maschinenschrift?

Ich glaube, dass ich die „deklarieren var Geschichte: {...}“ bearbeiten müssen diese (korrigiert mich wenn ich falsch liege):

declare var History: { 
    prototype: History; 
    new(): History; 
    pushState(data: any, title: string, url: string): void; 
} 

Und danach, kann ich jetzt schreiben History.pushState (...); in meinem Typescript-Code.

Aber ich kann die Datei lib.d.ts nicht speichern, weil sie geschützt ist. Und es ist nicht so gut, auch wenn ich es speichern könnte, denn dann kann ich die Funktionen in anderen Projekten verwenden, die nicht die History.js haben, und das würde einen Fehler machen (ich glaube, die lib.d.ts wird in allen geteilt Projekte).

Wie kann ich das erreichen?

Antwort

Verwandte Themen