2013-01-21 16 views
6

Chcę podzielić definicje klas w tym samym module na wiele plików. Tak mi się to spodobało i zadziałało.TypeScript: Dzielenie modułu na wiele plików

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

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

Potem próbował użyć ClassA w ClassB i zrobił:

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

Ale to nie działa; "ClassA" musi być "MyModule.ClassA" w b.ts, chociaż są one w tym samym module.

Preferuję prostszy sposób jak wyżej. Czy masz jakieś pomysły?

Odpowiedz

2

można rozwiązać problemu poprzez klasę publiczną:

module MyModule{ 
    export class ClassA{ 
    } 
} 

Nie jestem pewien, dlaczego trzeba to zrobić tak naprawdę są one częścią tego samego modułu - ale to wydaje się być w przypadku .

+0

Dziękuję bardzo. To zadziałało. Powodem, dla którego to robię, jest to, że źródło byłoby bardzo duże w jednym pliku. Zasadniczo ClassA nie musi być publiczna, więc jest to trochę niewygodne, ale myślę, że jest to lepsze niż wcześniej. – uhyoooooo

+0

Dzielenie modułu na wiele plików to dobra praktyka, więc nie ma tam żadnych argumentów. – Fenton

+0

Nie sądzę, że jest to właściwe rozwiązanie, ponieważ zmienia semantykę ClassA. Zdaję sobie sprawę, że w ten sposób TypeScript implementuje to, ale nadal. – Buzzy

Powiązane problemy