2016-12-08 4 views
1

Hier ist ein vereinfachtes Beispiel, was ich versuche zu tun: Deklarieren Sie eine Variable mit var in einer Zeile, und exportieren Sie sie später.Warum ist dieses TypeScript nicht gültig?

var Game = {}; 
export Game; 

Wenn ich versuche, es zu kompilieren, bekomme ich diesen Fehler:

error TS1128: Declaration or statement expected.

Der Grund, warum ich brauche ist, dass ich bin mit Mongoose, wo mongoose.model<Interface>() eine Modellklasse schafft. Ich möchte dem Prototyp Funktionen hinzufügen und sie dann exportieren.

Edit: Ich könnte das tun, aber es fühlt sich peinlich.

var _Game = {}; 
export var Game = _Game; 
+0

Was passiert, wenn Sie versuchen, es zu kompilieren? – byxor

+0

Fehler TS1128: Deklaration oder Anweisung erwartet. – Jamie

Antwort

5

Wenn Sie eine zuvor deklarierte Variable exportieren, (in beiden Typoskript und ES6 Exporte im Allgemeinen), müssen Sie geschweifte Klammern verwenden:

var Game = {}; 
export { Game }; 

Source

+0

Diese Lösung hat für mich funktioniert – Jamie

2

Nur

verwenden
export var Game = {}; 

oder

var Game = {}; 
export { Game }; 

Referenz: typescript doc