Ich habe ziemlich viele Probleme bekommen, TypeScript richtig zu verwenden, indem ich import
Anweisungen verwende.Wann JS-Bibliotheken mit Skript-Tags in TypeScript enthalten sind?
Zum Beispiel arbeite ich gerade an der Erstellung einer Angular2-Anwendung mit Leaflet. Ich habe es geschafft, ein paar Bibliotheken korrekt zu laden, wie Lodash und Leaflet, aber jetzt kämpfe ich mit einem Leaflet-Plugin, Leaflet.MarkerCluster funktioniert richtig.
So wie ich bin den Import wie folgt:
import L from 'markercluster';
Ich habe folgendes in meiner SystemJS Definition:
markercluster: 'node_modules/leaflet.markercluster/dist/leaflet.markercluster'
Dies bewirkt, dass die MarkerCluster Datei und Attaches laden und ich kann es zum Beispiel von L.MarkerClusterGroup
zugreifen, wenn ich es in der Konsole testen.
Wenn ich es jedoch in einem TypeScript-Modul ausführen, erhalte ich einen Fehler. Ich habe ein bisschen gegraben und dies scheint auf die Art und Weise zurückzuführen zu sein, wie das generierte JavaScript läuft. Die erzeugte JavaScript ist tatsächlich versucht, L (das Faltblatt globale Objekt) zugreifen zu können, sondern es Zugriff auf:
var m = new markercluster_1.default.MarkerClusterGroup();
Inspizieren markercluster_1.default
, kann ich sehen, dass es ein leeres Objekt. Ich bin mir nicht sicher, wie ich das umgehen soll, aber ich denke, wenn es überhaupt Sinn macht, in dieser Situation Importanweisungen zu verwenden? Wäre es sinnvoller, einfach oben in die Seite zu schreiben und ///<reference path='....'>
in der TypeScript-Datei zu verwenden, in der ich versuche, auf das Modul zuzugreifen?