2013-01-21 17 views
6

Voglio dividere le definizioni di classe in uno stesso modulo in più file. Quindi mi è piaciuto e ha funzionato.TypeScript: Splitting module in più file

a.ts: 
module MyModule{ 
    class ClassA{ 
    } 
} 

b.ts: 
module My Module{ 
    class ClassB{ 
    } 
} 

Poi ho provato ad usare ClassA in ClassB e ha fatto che:

b.ts: 
///<reference path="a.ts"/> 
module MyModule{ 
    class ClassB{ 
     private a:ClassA; 
    } 
} 

Ma non ha funzionato; "ClassA" doveva essere "MyModule.ClassA" in b.ts sebbene fossero nello stesso modulo.

Preferisco un modo più semplice come sopra. Hai qualche idea?

risposta

2

È possibile risolvere il problema, rendendo la classe pubblica:

module MyModule{ 
    export class ClassA{ 
    } 
} 

io non sono sicuro perché è necessario fare questo come in realtà fanno parte dello stesso modulo - ma questo sembra essere il caso .

+0

Grazie mille. Ha funzionato. La ragione per cui lo faccio è che la fonte sarebbe molto grande in un file. Essenzialmente ClassA non ha bisogno di essere pubblico, quindi questo è un po 'scomodo, ma penso che sia meglio di prima. – uhyoooooo

+0

La suddivisione di un modulo su più file è una buona pratica, quindi non ci sono argomenti da parte mia. – Fenton

+0

Non penso che questa sia la soluzione giusta perché cambia la semantica di ClassA. Mi rendo conto che questo è il modo in cui TypeScript implementa questo, ma ancora. – Buzzy