Dire che voglio avere una classe per file .ts. Ho due file .ts, che sembrano così:Come si mettono più moduli esterni nello stesso spazio dei nomi in TypeScript?
export module MyClasses { export class A {} }
e
export module MyClasses { export class B {} }
non posso fare questo:
import MyClasses = module('A');
import MyClasses = module('B');
Come faccio a definire le classi in file separati e metterli nello stesso "spazio dei nomi"? Inoltre, si finisce per dover fare qualcosa di simile:
MyClasses.MyClasses.A
invece di
MyClasses.A
Qual è il punto di questo ulteriore livello di gerarchia? In modo che tu possa avere più di un modulo esportato in un file di modulo? La soluzione migliore che ho scoperto finora è quella di rimuovere il "modulo di esportazione" (dal momento che "la classe di esportazione" sembra essere sufficiente per la compilazione di AMD), che sposta la classe su un livello gerarchico. Quindi:
import AModule = module('A');
module MyClasses{ var A = AModule.A; }
import BModule = module('B');
module MyClasses { var B = BModule.B; }
Anche se funziona perfettamente, non è esattamente sintetico. Non c'è un modo migliore per farlo?
Ho fatto una richiesta di funzionalità per una parola chiave che fa qualcosa di simile: http://typescript.codeplex.com/workitem/305 – Brent