Buduję aplikację Aurelia w TypeScript, która wykorzystuje SystemJS/jspm i TypeScript definition manager. Mam pliki źródłowe .ts
pod plikami /app/**
i .d.ts
pod /typings/**
i /jspm_packages/**
(Ponieważ niektóre pliki definicji są wysyłane za pośrednictwem jspm).Odwoływanie się do definicji typu TypeScript
Oczywiście kompilator TypeScript nie rozumie SystemJS/jspm lub TSD, więc muszę w jakiś sposób odwołać się do definicji typów zarządzanych przez nich. Próbowałem przekazać wszystkie pliki .ts
do kompilatora, więc odwołuje się zarówno do źródła, jak i definicji, ale prowadzi to do króliczej dziury konieczności pobierania wszystkich definicji typów zaimportowanych przez wszystkie definicje typów. Kończy się definicją typu inception (Yo dawg słyszałem, że lubisz definicje typów). Wydaje się, że kompilator powinien dbać tylko o rzeczy wyeksportowane według definicji typów bezpośrednio przywoływanych przez źródło (i nie rzeczy zaimportowane przez te definicje).
W każdym razie mam wrażenie, że podchodzę do tego w niewłaściwy sposób i zastanawiam się, czy istnieje lepszy/właściwy sposób odwoływania się do plików definicji.
PS: Wygląda na to, że mogą istnieć pewne rozwiązania, które wymagają edytorów/wtyczek, ale szukam podejścia ściśle CLI, ponieważ jest to część automatycznej kompilacji.
Czy próbowałeś przenieść swój folder typowania do folderu aplikacji? W ten sposób plik tsconfig.json, który tam mieszka, automatycznie odbierze twoje deklaracje (a nie inne pakiety z jspm). – Brocco
Podnosi deklaracje, ale problem jest następujący: referencje (import) we wszystkich typach definicje. Na przykład, powiedzmy, że odwołuję się do biblioteki lib A, która odwołuje się do biblioteki lib B. Powinienem tylko dołączyć definicję typu dla biblioteki lib A. Ale w obecnej formie muszę dołączyć definicje typów zarówno dla biblioteki lib A, jak i B. – hcoverlambda
tsd powinienem sobie z tym poradzić ... tzn. jeśli zainstaluję definicje dla kątowego poprzez tsd, automatycznie wniosę do mnie jquery. – Brocco