Я пытаюсь создать большое угловое приложение в машинописном, и я хочу, чтобы мое приложение изложил следующую структуру папок:машинопись синтаксис импорта с несколькими файлами
./app
--- Контроллеры
--- --- HomeController.ts
--- --- SomeOtherController.ts
--- Директивы
--- --- MyDirective.ts
--- app.ts
Мне также хотелось бы, чтобы пространства имен/модулей были выложены, поэтому все контроллеры находятся в пространстве имен MyApp.Controllers. Таким образом, в приведенном выше примере я бы иметь 2 контроллера в модулях:
MyApp.Controllers.HomeController
MyApp.Controllers.SomeOtherController
Я установить это делает следующее:
HomeController. ц:
export module MyApp.Controllers {
export class HomeController {
...
}
}
SomeOtherController.ts
export module MyApp.Controllers {
export class SomeOtherController {
...
}
}
Сейчас в app.ts Я хочу, чтобы импортировать все мои контроллеры, и это, где я бегу в проблемы, я стараюсь:
import * as Controllers from './controllers/HomeController'
, но затем получить доступ к контроллеру у меня есть :
Controllers.MyApp.Controllers
Какая уродливость. Также как мне получить контроллер из другого файла? В идеале я хотел бы импортировать все в пространство имен «MyApp.Controllers», и мы можем использовать его без префикса MyApp.Controllers в коде.
Это помогает! Просто ради интереса, какова цель «модуля экспорта»? Когда я должен использовать это? – Mikeb
Вы по-прежнему можете использовать 'export module' или' export namespace', если по какой-то причине вы в одном файле экспортируете действительно большое количество классов/интерфейсов, - тогда вы можете структурировать их в одном файле, разбив их на разные модули. Но в таких случаях я лично рекомендую вместо этого создать два файла. Для более подробного объяснения - это хороший поток для чтения: http://stackoverflow.com/questions/30357634/how-do-i-use-namespaces-with-typescript-external-modules – Amid