Automatisch AMD Deps in Typescript AMD Modul?

8

Gibt es eine Möglichkeit, Typescript-Module so zu importieren oder mit Anmerkungen zu versehen, dass externe AMD-Module beim Generieren eines AMD-kompatiblen Moduls automatisch als Abhängigkeiten einbezogen werden ?:

%Vor%

Ich habe versucht, sowohl eine Referenz * .d.ts-Datei als auch deklarative Anweisungen zu implementieren:

%Vor%

Das generierte Modul enthält diese jedoch nicht:

%Vor%

Möchte wirklich vermeiden, hier "falsche" Module zu erstellen.

Es scheint eine nette Lösung und Verwendung zu sein, den Import von AMD-Modulen direkt zu ermöglichen:

%Vor%

aber ich weiß nicht, wie machbar das ist.

Bearbeiten:

Und ich habe auch diesen hier erwähnten Ansatz ausprobiert: Importieren Sie das TypeScript-Modul, das nur Ambient-Definition für die Verwendung in AMD verwendet

%Vor%

, aber diese Compilerfehler erhalten:

%Vor%     
7zark7 12.12.2012, 06:12
quelle

3 Antworten

3

In den neueren Versionen von TypeScript ist die richtige Vorgehensweise ...

Beispiel (ist jQuery)

Schritt 1: Laden Sie die Definitionsdatei von NuGet herunter (d. h. jquery.typescript)

Schritt 2: Hier ist der Code (der Referenzkommentar ist in Visual Studio nicht erforderlich):

%Vor%

Das resultierende JavaScript:

%Vor%

Knockout

Einige Leute hatten Probleme mit Knockout ... Die gleiche Technik funktioniert für Knockout ...

%Vor%

Das resultierende JavaScript:

%Vor%     
Fenton 06.01.2015, 15:16
quelle
4

Dies:

%Vor%

Führt zu einem richtigen define Aufruf:

%Vor%

Beachten Sie, dass der Compiler diese Abhängigkeit optimiert, wenn Sie keinen importierten Wert ( $ in diesem Beispiel) in einer value -Position verwenden (im Gegensatz zu nur in Typpositionen) .

    
Ryan Cavanaugh 12.12.2012 17:52
quelle
0

Ryans Antwort funktionierte, außer dass die neue Deklaration die Typen verbirgt, auf die in der dreifach kommentierten ".d.ts" -Datei verwiesen wird.

Um dies zu umgehen, sollten Sie versuchen, die Deklaration wie folgt zu ändern:

%Vor%

Ich habe nicht mit Knockout getestet, aber die Lösung sollte auch damit funktionieren.

    
friskm 30.07.2013 10:45
quelle

Tags und Links