2016-08-24 4 views
1

Ich versuche typings zu verwenden, um eine Definitionsdatei für bowser zu laden. Ich habe Typinstallationen installiert und starte typings install dt~bowser -DG --save-dev, um es lokal zu installieren. Das funktioniert großartig. Aber jetzt weiß ich nicht, wie ich es benutzen soll. In der Vergangenheit hat es "gerade funktioniert" - was bedeutet, wenn ich jetzt versuche und schreibe, was bowser in TypeScript referenziert, wird es meine Definitionsdatei finden (heruntergeladen mit Typings von DefinitelyTyped) und bowser als globale Funktion erkennen. Nun aber sieht es aus wie die Definitionsdatei geändert hat, und es ist jetzt ein „Modul“:Wie verwenden Sie TypScript-Typings, die Module sind?

declare module 'bowser' { 
    var def: BowserModule.IBowser; 
    export = def; 
} 

Wie soll ich diese Dateien in meinem Typoskript benutzen? Natürlich kann ich so etwas tun:

declare var bowser: BowserModule.IBowser; 

Aber das fühlt sich falsch an/hacky. Was fehlt mir hier - was hat sich in der Welt der Typings/DefinitelyTyped geändert?

Antwort

1

The correct syntax would be

import bowser = require('bowser') 

Wenn Ihre Typisierungen ordnungsgemäß konfiguriert sind, soll es funktionieren. Else, überprüfen, ob die typings/index.d.ts Datei in Ihrem Build-Skript verwiesen wird, und wenn Bowser richtig dort verwiesen wird:

/// <reference path="globals/bowser/index.d.ts" /> 
+0

Danke für die Hilfe, die mich weitergekommen. Jetzt heißt es jedoch, dass es keine regulär exportierten Klassen mehr finden kann, die ich in meinen eigenen anderen .ts-Dateien definiert habe. Ich konnte eine weitere 'import'-Anweisung hinzufügen, um es zu beheben - aber das scheint verrückt zu sein? Wenn Sie einen Import hinzufügen, müssen alle externen Abhängigkeiten von diesem Punkt an importiert werden? –

+0

Die '///

+0

Obwohl, wenn Sie mich fragen, ich denke, ES6-Standard "Import" Anweisungen sollten verwendet werden, wenn möglich –

Verwandte Themen