我已经完成了类型脚本的相当多的工作,我们总是使用模块来创建命名空间。我发现这并不适合角度。对于需要做什么特殊工作的任何帮助表示赞赏。
使用下面的代码,我希望能够在导入中引用代码作为MyApplication.Contacts.ContactComponent。
module MyApplication.Contacts {
@Component({
templateUrl: '/Home/Contact'
})
export class ContactComponent {
}
}
答案 0 :(得分:2)
使用ES6模块你不再需要命名空间了 - angular2文档非常倾向于这种风格,所以我认为这将是用于编写angular2应用程序的 方法。缺点是你需要一个编译步骤,但是当你使用ES7装饰器时,这似乎没问题。
// my-application/contacts.ts
import { Component } from 'angular2/core';
@Component({
templateUrl: '/Home/Contact'
})
export class ContactComponent {
}
// later in my-application/app.ts
import { bootstrap } from 'angular2/platform/browser';
import { ContactComponent } from './contacts';
// Do something with ContactComponent ...
顺便说一下:TypeScript现在有namespace
关键字取代module
,以便更好地区分内部和外部模块。
答案 1 :(得分:0)
示例中的模块是内部TS模块。您看到的大多数示例都使用外部TS模块(查看Handbook对它们的评价。外部模块也看起来像ES6 Modules,因此使用它们的另一个好处。
要组织外部模块,您只需使用文件夹,正确配置的加载器(如SystemJS)就会知道在哪里查找它们。如果您想保留您的结构,只需创建MyApplication/Contacts.ts
文件,然后您可以像这样导入它:
import {ContactComponent} from 'MyApplication/Contacts';