2015-05-24 3 views
1

У меня следующая ситуация:Ссылки на вложенные машинопись модули

/*file A/Z.ts*/ 
///<reference path="B/Y.ts"/> 
module A{ 
    import Y = B.Y; 
    export class Z{ 
     //use class Y 
    } 
} 


/*file A/B/Y.ts*/ 
///<reference path="../Z.ts"/> 
module A.B{ 
    import Z = A.Z; 
    export class Y{ 
     //use class Z 
    } 
} 

который, кажется, скомпилироваться однако я получаю JavaScript вопросы. При вызове var y = new Y() в консоли chrome dev я получаю: Uncaught TypeError: undefined is not a function и ищет в сгенерированном JavaScript примечания по проверке кода IntelliJ, что B является закрытым и недоступным.

Стоит отметить, что все мои .ts скомпилированы в один файл.

РЕДАКТИРОВАТЬ: При дальнейшей проверке это вопрос с заказом. Перемещение объявлений вокруг в сгенерированном javascript фиксировало ошибки JavaScript. Проблема возникла только тогда, когда я начал обматывать свои классы в модулях. т. е. заказы были прекрасными предварительными модулями, заставляя меня предположить, что все мои ссылки в порядке.

TSC Версия 1.5.0 бета-

ответ

0

Как я предполагал, что это был вопрос упорядочения. Я исправил проблему, повторно рассмотрев свои заявления ///<reference path=""/> и удалив ///<reference path="../Z.ts"/> от Y.ts.

После прочтения this кажется, что он не нужен, потому что компилятор уже загружен Z.ts на данном этапе, и в том числе он просто изменил порядок.

Смежные вопросы