我得到的服務MessageService
與ClientMessage<T>
類的實現位於同一模塊中。使用TypeScript在AngularJS中導出自定義對象
通過獨立控制器訪問此類的最簡單方法是什麼,該控制器已經注入了MessageService
類?
有沒有更接近NodeJS的import service = require('MessageService')
解決方案?
這是什麼最佳做法?在一個單獨的文件中定義那些消息相關的模型類,並通過依賴注入來加載它們?
我得到的服務MessageService
與ClientMessage<T>
類的實現位於同一模塊中。使用TypeScript在AngularJS中導出自定義對象
通過獨立控制器訪問此類的最簡單方法是什麼,該控制器已經注入了MessageService
類?
有沒有更接近NodeJS的import service = require('MessageService')
解決方案?
這是什麼最佳做法?在一個單獨的文件中定義那些消息相關的模型類,並通過依賴注入來加載它們?
在你的代碼你正在使用的舊的語法(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模塊。
太棒了 - 不幸的是,我爲這個項目使用了一個生成器,所以將整個代碼庫推向這個新約定並不那麼容易。 – HansMusterWhatElse