【发布时间】:2012-12-08 03:37:45
【问题描述】:
尝试以具有依赖关系的函数式样式使用 TypeScript 时,我感到很沮丧。假设我想制作一个依赖于另一个模块的模块。
如果我不使用依赖注入,它看起来像这样(在节点中)。
SomeOtherModule = require("SomeOtherModule")
exports.doSomething = function() {
SomeOtherModule.blah()
}
这就是我使用依赖注入的方式
module.exports = function(SomeOtherModule) {
function doSomething() {
SomeOtherModule.blah()
}
return {doSomething: doSomething};
}
在打字稿中,如果你定义了一个具体的类或模块,你可以在导出函数时键入函数或将它们包含在类中。都在旁边。
但由于我无法在 DI 函数内部定义一个模块,所以我可以看到的唯一方法是为我单独返回的对象定义一个接口,这很烦人,因为我想让类型注释符合定义。
有什么更好的方法来做到这一点?
【问题讨论】:
标签: javascript dependency-injection functional-programming typescript