2016-06-09 3 views
3

Ich habe versucht, die folgende d.ts-Datei, aber die Art für das erstellte Element any ist zu erstellen:Wie eine externe Bibliothek erklären, wie eine Klasse in Typoskript wirkenden

declare module 'jszip' { 
    interface JSZip { 
    (): void 
    file (name: string, data: string, opts: any): void 
    folder (name: string): JSZip 
    } 
    const dummy: JSZip 
    export = dummy 
} 

Bei der Verwendung von ihm:

import * as JSZip from 'jszip' 

const zip = new JSZip() 
// zip type === any 

Was ist der richtige Weg, dies zu tun?

Antwort

4

Sie müssen Ihr Modul als Schnittstelle zur Konstruktordeklaration deklarieren.

declare module 'jszip' { 
    interface JSZipInterface { 
    (): void 
    file (name: string, data: string, opts: any): void 
    folder (name: string): JSZipInterface 
    } 

    interface JSZipConstructor { 
    new(): JSZipInterface 
    } 


    const module: JSZipConstructor 
    export = module 
} 

enter image description here