1

寻找使用 SystemJS 和 Type 脚本实现以下场景的最佳实践 -

  1. AbstractLogger.d.ts - 应该用一些类声明(导出)模块。
  2. ConsoleLogger.ts - 应该“实现” AbstractLogger。
  3. Consumer.ts - 应该引用 AbstractLogger 类,并使用它。

一切都可以编译,但是我应该在哪里注入 ConsoleLogger 作为当前的 AbstractLogger 实现?在服务器端代码中,使用简单的 DI 很容易实现,这里应该怎么做?

尝试使用 System.config (map: ...) 但没有成功。这是正确的模式,还是我在这里遗漏了什么?

谢谢!

4

2 回答 2

0

在服务器端代码中,使用简单的 DI 很容易实现,这里应该怎么做

ES6 模块加载器不是 DI。如果有帮助,可以考虑使用script标签创建者(文件排序)+ revealing module pattern wrapper(防止全局污染)。

对于 DI,您需要一个 DI 库。例如,它易于使用 Inversify 与一些模块加载器(包括 systemjs):Typescript IOC in case of node

于 2016-02-25T23:05:20.300 回答
0

需要 DI 库——模块加载器不是依赖注入容器。

试试Aurelia 依赖注入容器。它是一个没有依赖关系的独立库,可在浏览器和节点中工作,同时支持 TypeScript 和 JavaScript。

于 2016-02-26T01:04:13.263 回答