我已获得服务MessageService
,该服务与类ClientMessage<T>
的实施位于同一模块中。
通过已注入MessageService
类的独立控制器访问此类的最简单方法是什么?
是否有更接近NodeJS import service = require('MessageService')
解决方案的更简单方法?
对此最佳做法是什么?在单独的文件中定义那些与消息相关的模型类,并通过依赖注入加载它们?
答案 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模块。