Understanding interne / externe Module und importieren / erfordern Typescript 0.8.2

8

Es gibt zahlreiche StackOverflow-Fragen, die dieses Thema berühren, aber beide sind nicht ganz die gleichen wie das, was ich versuche oder für frühere Versionen von TypeScript.

Ich arbeite an einem ziemlich großen TypeScript-Projekt und habe ein gegebenes Modul über mehrere Dateien verteilt, nicht eine pro Klasse.

In 0.8.0 funktionierte das gut:

%Vor%

.

%Vor%

.

%Vor%

In Version 0.8.1 musste ich a.ts mit dem Export-Import Trick ändern:

%Vor%

In der Version 0.8.2 können Importe jedoch nicht mehr in der Moduldeklaration enthalten sein. Daher wurde a.ts folgendermaßen geändert:

%Vor%

was jetzt einen Fehler ergibt, weil a.ts die Erweiterung des Moduls in b.ts nicht sieht.

Was ich verstehe:

  
  • a.ts wurde aufgrund der Import-Anweisung zu einem externen Modul.
  •   
  • Durch das Entfernen des Imports in a.ts können a und b und mein Modul zusammengeführt werden.
  •   
  • Durch das Ändern des Imports in eine require-Anweisung werden die Typdefinitionen in express.d.ts verloren
  •   

Was ich nicht verstehe:

  
  • Gibt es wirklich keine Möglichkeit für mich, das zu umgehen, ohne all meine Moduldateien zusammenzuführen?
  •   

Ich entschuldige mich, wenn das anderswo beantwortet wird - verlinke mich einfach dort - aber keines der anderen ähnlichen Probleme scheint das definitiv zu beantworten.

    
Crwth 12.02.2013, 15:09
quelle

1 Antwort

5

Das mache ich aus Ihrer Situation.

Ihre Module ...

Sie müssen Ihre Datei nach Ihrem Modul benennen, also sollte a.ts eigentlich m.ts heißen und sollte etwas wie ...

enthalten %Vor%

Sie sollten hier keine reference -Anweisungen verwenden.

Wenn Sie Code auf nodejs ausführen, können Sie Ihren Code nicht wirklich auf mehrere Dateien aufteilen, da die Datei selbst Ihr Modul ist - wenn Sie import m = module('m'); nach m.js suchen. Was Sie können tun, ist, Ihre Dateien in einer Ordnerstruktur zu organisieren.

%Vor%     
Fenton 12.02.2013, 17:03
quelle

Tags und Links