我试图创建打字稿大角度的应用程序,我想我的应用程序奠定了具有下列文件夹结构:打字稿进口语法
./App
--- 控制器
--- HomeController.ts
--- SomeOtherController.ts
--- 指令
--- MyDirective.ts
--- app.ts
我还想要命名空间/模块,以便所有控制器都位于MyApp.Controllers命名空间中。所以在上面的例子中我有2个控制器模块:
MyApp.Controllers.HomeController
MyApp.Controllers.SomeOtherController
我设置了执行下列操作:
HomeController的。 TS:
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