javascript - Typescript 中的闭包(依赖注入(inject))

标签 javascript dependency-injection functional-programming typescript

我在尝试以具有依赖性的函数式风格使用 TypeScript 时被踢得屁滚尿流。假设我想制作一个依赖于另一个模块的模块。

如果我没有使用依赖注入(inject),它看起来像这样(在节点中)。

SomeOtherModule = require("SomeOtherModule")
exports.doSomething = function() {
  SomeOtherModule.blah()
}

这就是我使用依赖注入(inject)的方式

module.exports = function(SomeOtherModule) {
  function doSomething() {
    SomeOtherModule.blah()
  }

  return {doSomething: doSomething};
}

在 typescript 中,如果您定义了一个具体的类或模块,您可以在导出函数或将它们包含在类中时键入函数。挨着挨着就好了。

但是由于我不能在 DI 函数内部定义一个模块,我能看到的唯一方法是为我单独返回的对象定义一个接口(interface),这很烦人,因为我想让类型注释符合定义。

执行此操作的更好方法是什么?

最佳答案

这可能会给你一个好的开始:http://blorkfish.wordpress.com/2012/10/23/typescript-organizing-your-code-with-amd-modules-and-require-js/

我不知道这是不是最好的设置方式。但我成功了。

关于javascript - Typescript 中的闭包(依赖注入(inject)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314241/

相关文章:

java - Dagger不生成子组件创建方法

java - 如何在 Java 中实现许多类通用的自定义方法?

javascript - 使用折叠映射任意 n 元树

javascript - 当它已经旋转时自定义旋转一个div

javascript - 使用 mysql 和 bcryptjs 时出现意外标识符语法错误

javascript - 如何使用删除功能追加元素

JavaScript 加载 MVC ASP .NET MVC

java - 注入(inject)已注入(inject)实例的列表

java - Spring中如何构造Map<String, List<String>>数据结构

Haskell 反向代理问题