【问题标题】:SystemJS module injectionSystemJS 模块注入
【发布时间】:2016-02-25 10:44:22
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: typescript systemjs es6-module-loader


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-23
        • 2016-12-01
        • 1970-01-01
        相关资源
        最近更新 更多