使用TypeScript在AngularJS中导出自定义对象

时间:2015-09-21 16:07:13

标签: angularjs dependency-injection model typescript

我已获得服务MessageService,该服务与类ClientMessage<T>的实施位于同一模块中。

通过已注入MessageService类的独立控制器访问此类的最简单方法是什么?

是否有更接近NodeJS import service = require('MessageService')解决方案的更简单方法?

对此最佳做法是什么?在单独的文件中定义那些与消息相关的模型类,并通过依赖注入加载它们?

enter image description here

1 个答案:

答案 0 :(得分:0)

在您的代码中,您使用旧语法(module关键字)作为内部模块,the new syntax使用namespace关键字:

namespace Common.Services {
 // ...
}

the release of TypeScript 1.5开始,您可以使用新的ES6模块语法。

在您的示例中,您需要在接口和类之前删除module Common.Services {部分和export关键字。然后在文件的底部你可以使用:

export { IMessageService, IMessage, ClientMessage, MessageService };

然后从名为x_controller.ts的文件中的独立控制器:

import { MessageService, ClientMessage } from "somefile.ts";
var a = new ClientMessage<string>();
var b = new MessageService();

将代码迁移到ES6模块语法后,如果您正在使用Node.js,则可以使用--module commonjs compiler option将模块编译为CommonJS模块。

您可以了解有关ES6模块here的更多信息。您可以了解有关内部和外部模块here之间差异的更多信息。